C# 使用switch case表達(dá)式進(jìn)行模式匹配
switch case基于特定變量的值。<testVar>的類型已知,例如,可以是integer、string或者boolean。如果是integer類型,則變量中存儲(chǔ)的是數(shù)字值,case語(yǔ)句將檢查特定的整數(shù)值(1、2、3等),當(dāng)找到相匹配的數(shù)字后,就執(zhí)行對(duì)應(yīng)的代碼。
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數(shù)組)在switch case中進(jìn)行模式匹配。因?yàn)樽兞康念愋褪羌褐?,所以可以訪問該類型提供的方法和屬性。查看下面的switch結(jié)構(gòu):
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關(guān)鍵字之后緊跟的是想要檢查的變量類型(string、int等)。在case語(yǔ)句匹配時(shí),該類型的值將保存到聲明的變量中。例如,若<testVar>是一個(gè)integer類型的值,則該integer的值將存儲(chǔ)在變量value中。when關(guān)鍵字修飾符允許擴(kuò)展或添加一些額外的條件,以執(zhí)行case語(yǔ)句中的代碼。
點(diǎn)擊加載更多評(píng)論>>