C 的可空型別和合併運算子

2021-07-22 01:23:11 字數 988 閱讀 9023

c#提供了乙個特殊的資料型別,nullable型別,可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個null值。

在處理資料庫和其他包含可能未賦值的元素的資料型別時,將nul賦值給數值型別或布林型的功能特別有用。可以將bool型賦值未定義。

宣告乙個nullable型別:>?= null;

例如:

using system;

, , , ",

num1, num2, num3, num4);

console.writeline("乙個可空的布林值: ", boolval);

console.readline();}}

}

輸出結果:

顯示可空型別的值: , 45, , 3.14157

乙個可空的布林值:

null合併運算子

null 合併運算子用於定義可空型別和引用型別的預設值。null 合併運算子為型別轉換定義了乙個預設值,以防可空型別的值為 null。null 合併運算子把運算元型別隱式轉換為另乙個可空(或不可空)的值型別的運算元的型別。

如果第乙個運算元的值為 null,則運算子返回第二個運算元的值,否則返回第乙個運算元的值。

下面的例項演示了這點:

using system;

", num3);

num3 = num2 ?? 5.34;

console.writeline("num3 的值: ", num3);

console.readline();}}

}

結果:

num3 的值: 5.34

num3 的值: 3.14157

可空型別修飾符與空合併運算子

可以讓乙個值型別賦值為null,例如給乙個struct賦值為null或判斷乙個struct是否被賦過值 if m teststruct null 單問號 宣告該值型別為可空型別 宣告乙個可空型別有以下三種方式 int a null int b newint?nullable int c newnul...

C 可空型別和空接合運算子

隨手翻閱c 高階程式設計時,看到可空型別和運算子這一節,又發現了自己的乙個c 知識盲點。可空型別 可空型別只能用於值型別,不能用於引用型別,引用型別本身支援null值。如果直接把null賦值給int類 型,會出現乙個錯誤 無法將 null 轉換成 int 因為它是一種值型別 賦值時應該使用 int?...

C 空合併運算子

c 除了有?這個三元運算子以外 還有兩個問號?運算子叫做空合併運算子,用來判斷null值取空非常方便 string c a b a是值型別string,如果a是null,那麼c b,否則c a。這樣就會有新的需求,如果a是乙個物件 引用型別 a有name欄位,我們需要在a不是null的時候獲取a.n...