提问人:SimeonYordanov 提问时间:11/15/2023 更新时间:11/15/2023 访问量:49
C# 中用作单词“is”和“and”的逻辑运算符 [duplicate]
Logical operators in C# used as words 'is' and 'and' [duplicate]
问:
在我正在处理的项目的代码库中,我看到了相等性检查和枚举之间范围检查的语法,如下所示:
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#,我将很乐意学习新的东西。
答:
2赞
Guru Stron
11/15/2023
#1
这称为模式匹配,如果我没记错的话,它是在 C# 7(C# 7 功能的规范)中引入的,并在后续版本中通过添加不同的模式(如 C# 11 中的列表模式或 C# 10 中的扩展属性模式)逐渐改进。
评论
1赞
SimeonYordanov
11/15/2023
谢谢,我真的很感激这些信息!
0赞
Guru Stron
11/15/2023
@SimeonYordanov很乐意帮忙!如果答案适合您 - 请随时将其标记为已接受(选中左侧)
上一个:相关矩阵的 SPSS 语法样式
评论