位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 使用switch case表达式进行模式匹配

提问人:刘团圆发布时间:2020-12-04

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语句中的代码。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部