C# 在c中进行模式匹配时,为什么要声明一个额外的变量#
在C#模式匹配中,我们必须这样做:C# 在c中进行模式匹配时,为什么要声明一个额外的变量#,c#,switch-statement,pattern-matching,C#,Switch Statement,Pattern Matching,在C#模式匹配中,我们必须这样做: switch(someVar) { case var x when condition: break; default: break; } 如您所见,无论何时使用模式匹配,我们都必须声明一个新变量。为什么呢?为什么我们不能直接使用someVar switch(someVar) { case var _ when someVar > 10: break; default: break; } 不过,您仍然需
switch(someVar)
{
case var x when condition:
break;
default:
break;
}
如您所见,无论何时使用模式匹配,我们都必须声明一个新变量。为什么呢?为什么我们不能直接使用
someVar
switch(someVar)
{
case var _ when someVar > 10:
break;
default:
break;
}
不过,您仍然需要
var
,因为这是一种模式,switch语句与模式匹配,而不是与条件匹配。模式与任何内容都匹配。然后,当……
部件被检查时。欢迎来到StackOverflow。我不知道你们为什么这么做,正如你们在这些示例中看到的,我们需要检查someVar
是否来自特定类型。有时您只想在
部分时使用,不需要额外的类型验证,但语法需要它。