.net C#中用作单词“is”和“and”的逻辑运算符[重复]

kiayqfof  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(168)

此问题在此处已有答案

What is the difference between && and and in C#9?(2个答案)
4天前关闭。
在我正在做的项目的代码库中,我看到了一个用于相等性检查和枚举之间的范围检查的语法:

  1. public enum DaysOfWeek
  2. {
  3. Monday,
  4. Tuesday,
  5. Wednesday,
  6. Thursday,
  7. Friday,
  8. Saturday,
  9. Sunday,
  10. }
  11. public static partial class Extensions
  12. {
  13. public static bool IsWeekDay(this DaysOfWeek value) => value is <= DaysOfWeek.Friday and >= DaysOfWeek.Monday;
  14. }
  15. var isWeekDay = DaysOfWeek.Monday.IsWeekDay();
  16. Console.WriteLine(isWeekDay);
  17. // True

字符串
我的意思是语法是不言自明的,但我不知道这种语法存在于C#中当我试图在谷歌搜索时,我没有找到任何信息或任何例子。我甚至试着问chatGPT的免费版本,他的回答是,可能有一些扩展安装了这种行为,而没有任何编译或运行时错误。所以,如果你使用过这种语法,并知道它是如何工作的,如果它是作为扩展安装的,或者来自新版本的C#,我会很乐意学习新的东西。

sy5wg1nm

sy5wg1nm1#

这就是所谓的pattern matching,如果我没记错的话,是在C# 7中引入的(spec for C# 7 feature),并在随后的版本中逐渐改进,增加了不同的模式(如List patterns in C# 11Extended property patterns in C# 10)。

相关问题