首頁 >後端開發 >C++ >問號在C#值類型中意味著什麼(例如,``int?')?

問號在C#值類型中意味著什麼(例如,``int?')?

Barbara Streisand
Barbara Streisand原創
2025-01-26 08:51:10785瀏覽

What Does the Question Mark Mean in C# Value Types (e.g., `int?`)?

C# 值類型中的問號:理解可空型別

問號「?」在程式設計中扮演多種角色,包括在條件語句中的使用。但是,它也出現在值類型中,例如 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn