C# 使用switch case表达式进行模式匹配
switch case基于特定变量的值。<testVar>的类型已知,例如,可以是integer、string或者boolean。如果是integer类型,则变量中存储的是数字值,case语句将检查特定的整数值(1、2、3等),当找到相匹配的数字后,就执行对应的代码。
switch (<testVar>)
{
case <comparisonVall>:
<code to execute if <testVar> == <comparisonVall> >
break;
case <comparisonVal2>:
<code to execute if <testVar> == <comparisonVal2> >
break;
...
case <comparisonValN>:
<code to execute if <testVar> == <comparisonValN> >
break;
default:
<code to execute if <testVar> != comparisonVals>
break;
}
C# 7中可以基于变量的类型(如string或integer数组)在switch case中进行模式匹配。因为变量的类型是己知的,所以可以访问该类型提供的方法和属性。查看下面的switch结构:
switch (<testVar>)
{
case int value:
<code to execute if <testVar> is an int >
break;
case string s when s.Length == 0:
<code to execute if <testVar> is a string with a length = 0 >
break;
...
case null:
<code to execute if <testVar> == null >
break;
default:
<code to execute if <testVar> != comparisonVals>
break;
}
case关键字之后紧跟的是想要检查的变量类型(string、int等)。在case语句匹配时,该类型的值将保存到声明的变量中。例如,若<testVar>是一个integer类型的值,则该integer的值将存储在变量value中。when关键字修饰符允许扩展或添加一些额外的条件,以执行case语句中的代码。
点击加载更多评论>>