問號「?」在程式設計中扮演多種角色,包括在條件語句中的使用。但是,它也出現在值類型中,例如 public int? myProperty
。在這種情況下,這個問號有什麼作用呢?
可空型
值類型後面的問號表示它是一個可空型別。可空型別是 System.Nullable
結構的特殊實例,它可以容納底層類型的整個有效值範圍,以及一個特殊的空值。
此功能在處理資料庫場景或其他某些元素可能故意缺少值的資料來源時特別有用。例如,允許布林值的資料庫表列可能包含 true、false 或 null。
範例程式碼
考慮以下程式碼片段:
<code class="language-csharp">class NullableExample { static void Main() { int? num = null; // 判断 HasValue 是否为 true if (num.HasValue) { System.Console.WriteLine("num = " + num.Value); } else { System.Console.WriteLine("num = Null"); } // 如果 num 为 null,则赋值默认值 0 int y = num.GetValueOrDefault(); // 如果 num.HasValue 为 false,则抛出 InvalidOperationException try { y = num.Value; } catch (System.InvalidOperationException e) { System.Console.WriteLine(e.Message); } } }</code>
在此,num
變數被定義為可空整數 (int?
),可以保存整數或 null 值。 HasValue
屬性讓我們可以檢查變數是否包含有效值。如果 HasValue
為 true,我們可以使用 num.Value
來取得實際值。否則,num
被認為是 null。
以上是問號在C#值類型中意味著什麼(例如,``int?')?的詳細內容。更多資訊請關注PHP中文網其他相關文章!