c# - 为什么我们在c#中进行模式匹配时要声明一个额外的变量
问题描述
在 C# 模式匹配中,我们必须这样做:
switch(someVar)
{
case var x when condition:
break;
default:
break;
}
如您所见,每当我们使用模式匹配时,我们都必须声明一个新变量。这是为什么?为什么不能someVar
直接使用?
解决方案
是的,您可以someVar
直接使用,如下所示:
switch(someVar)
{
case var _ when someVar > 10:
break;
default:
break;
}
不过,您仍然需要var _
,因为这是一个模式,并且 switch 语句与模式匹配,而不是条件。_
模式匹配任何东西。然后when ...
检查零件。
推荐阅读
- python - 如何输出不包括所有空格的字符串?
- hibernate - 具有路径导航的相关实体上的 JPA 标准或条件
- c - 将十进制转换为具有长整数值的二进制 C
- python - 来自 Maya 的 Python 启动程序冻结
- javascript - 智能查询断言是否等待客户端函数?
- spring - 没有上限的Spring批处理FixedLengthTokenizer范围不起作用
- netbeans-8 - 您能告诉我如何在 netbeans 8.1 中设置自定义 phpmd 规则集文件吗?
- php - 我已经使用 PHP7 开发了一个应用程序,但是在服务器上有 PHP5,我们无法在那里升级 PHP
- qt - 为什么锚点更改后项目会消失?
- sql - 如何优先从表中获取列