我認識到處理可空類型的正確方法是使用HasValue屬性。但我想知道爲什麼下面的switch語句在null情況下而不是默認情況下中斷。使用VS2015 C#4.0。另一臺使用VS2010 C#4.0的計算機沒有這個問題。打開可空布爾值:如果值爲真,則爲空
private void Testing()
{
bool? boolValue = true;
switch (boolValue)
{
case null:
break; //even though value is true, code runs here
default:
break;
}
}
編輯:行爲與任何Nullable
如果僅case Null
和default
指定觀察。
我在VS2013上沒有得到這個行爲 –
我猜你的符號是過時的,它不運行你認爲正在運行的東西,或者編譯器正在做一些奇怪的優化,並且把兩個相等的塊。也許在那裏添加一些實際的代碼,看看它有什麼作用。 –
我在2010年沒有得到那種行爲。 – thewisegod