此问题在此处已有答案:
What is the difference between && and and in C#9?(2个答案)
4天前关闭。
在我正在做的项目的代码库中,我看到了一个用于相等性检查和枚举之间的范围检查的语法:
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#中当我试图在谷歌搜索时,我没有找到任何信息或任何例子。我甚至试着问chatGPT的免费版本,他的回答是,可能有一些扩展安装了这种行为,而没有任何编译或运行时错误。所以,如果你使用过这种语法,并知道它是如何工作的,如果它是作为扩展安装的,或者来自新版本的C#,我会很乐意学习新的东西。
1条答案
按热度按时间sy5wg1nm1#
这就是所谓的pattern matching,如果我没记错的话,是在C# 7中引入的(spec for C# 7 feature),并在随后的版本中逐渐改进,增加了不同的模式(如List patterns in C# 11或Extended property patterns in C# 10)。