C# 中的逻辑运算符用作单词“is”和“and”

问题描述 投票:0回答:1

在我正在开发的项目的代码库中,我看到了用于相等检查和枚举之间的范围检查的语法,如下所示:

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# .net syntax
1个回答
1
投票

这称为 模式匹配,如果我没记错的话,它是在 C# 7 中引入的(C# 7 功能的规范),并在以下版本中逐渐改进,添加了不同的模式。

© www.soinside.com 2019 - 2024. All rights reserved.