在 C# 中连续使用比较运算符
use comparison operators continuous in c#
你好,我叫 parsa,我是一名 C# 程序员,我想连续使用比较运算符,例如假设我们有三个名为 V1、V2、V3 的变量
Random rnd = new Random();
int V1 = rnd.Next(1,5), V2 = rnd.Next(1, 5), V3 = rnd.Next(1, 5);
它们中的每一个都等于 1 到 4 之间的随机数然后我们想看看它们是否相等以及它们是否等于 3?我们必须使用此代码
if(V1 == V2 && V1 == V3 && V1 == 3)
//body
如果我想像这样使用它,它会给我一个错误!
if(V1 == V2 == V3 == 3)
//body
可以像我写的代码一样使用吗?
遗憾的是,您不能在 C# 中执行此操作;但是,如果您将一个变量与多个模式(如常量模式或类型模式)进行比较,(自 C# 9.0 起)您可以编写
if(v is a or b or c)
请注意,您可以在 Visual Studio 16.8 或更高版本中使用 C# 9.0。它是与 .NET 5 一起引入的。您可以通过手动将 LangVersion 标记添加到 *.csproj 来使用旧框架版本中的大部分 C# 9.0 功能(包括模式匹配)。
<PropertyGroup>
...
<LangVersion>latest</LangVersion>
</PropertyGroup>
另请参阅:What's new in C# 9.0 / Pattern matching enhancements(Microsoft 文档)
你好,我叫 parsa,我是一名 C# 程序员,我想连续使用比较运算符,例如假设我们有三个名为 V1、V2、V3 的变量
Random rnd = new Random();
int V1 = rnd.Next(1,5), V2 = rnd.Next(1, 5), V3 = rnd.Next(1, 5);
它们中的每一个都等于 1 到 4 之间的随机数然后我们想看看它们是否相等以及它们是否等于 3?我们必须使用此代码
if(V1 == V2 && V1 == V3 && V1 == 3)
//body
如果我想像这样使用它,它会给我一个错误!
if(V1 == V2 == V3 == 3)
//body
可以像我写的代码一样使用吗?
遗憾的是,您不能在 C# 中执行此操作;但是,如果您将一个变量与多个模式(如常量模式或类型模式)进行比较,(自 C# 9.0 起)您可以编写
if(v is a or b or c)
请注意,您可以在 Visual Studio 16.8 或更高版本中使用 C# 9.0。它是与 .NET 5 一起引入的。您可以通过手动将 LangVersion 标记添加到 *.csproj 来使用旧框架版本中的大部分 C# 9.0 功能(包括模式匹配)。
<PropertyGroup>
...
<LangVersion>latest</LangVersion>
</PropertyGroup>
另请参阅:What's new in C# 9.0 / Pattern matching enhancements(Microsoft 文档)