在我正在开发的项目的代码库中,我看到了用于相等检查和枚举之间的范围检查的语法,如下所示:
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
public static partial class Extensions
{
public static bool IsWeekDay(this DaysOfWeek value) => value is <= DaysOfWeek.Friday and >= DaysOfWeek.Monday;
}
var isWeekDay = DaysOfWeek.Monday.IsWeekDay();
Console.WriteLine(isWeekDay);
// True
我的意思是语法是不言自明的,但我不知道这种语法存在于 C# 中,当我尝试在 google 中搜索时,我没有找到任何信息或任何示例。我什至尝试询问 chatGPT 的免费版本,他的回答是,可能安装了一些扩展,以便此行为可以在没有任何编译或运行时错误的情况下工作。因此,如果你们中的任何人使用过此语法并知道它如何作为扩展安装,或者它是否来自新版本的 C#,我将很高兴学习新东西。
这称为 模式匹配,如果我没记错的话,它是在 C# 7 中引入的(C# 7 功能的规范),并在以下版本中逐渐改进,添加了不同的模式。