共用方式為


HOW TO:建立可為 Null 的型別 (類別設計工具)

某些實值型別 (Value Type) 不一定都有 (或需要) 已定義的值。 這是資料庫的一般做法,也就是有些欄位並不會指派到任何值。 例如,您可能將 null 值指派給資料庫欄位,表示尚未指派給該欄位任何值。

「可為 Null 的型別」(Nullable Type) 是一種擴充的實值型別,可讓您針對該型別採用一般的值範圍,而且也可以使用 null 值。 例如,可為 Null 的 Int32 (也表示為 Nullable<Int32>) 可以指派為 -2147483648 到 2147483647 間的任意值,或是指派為 null 值。 Nullable<bool> 可以指派為 True、False 或 null 值 (完全沒有值)。

可為 Null 的型別是 Nullable<T> 結構的執行個體。 可為 Null 之型別的每個執行個體都有兩個公用唯讀屬性 HasValue 和 Value:

  • HasValue 的型別為 bool,並會指出變數是否包含已定義的值。 True 則表示變數包含非 null 值。 您可以使用如 if (x.HasValue) 或 if (y != null) 這類陳述式,測試是否有已定義的值。

  • Value 的型別與基礎型別相同。 如果 HasValue 為 True,Value 會包含有意義的值。 如果 HasValue 為 False,則存取 Value 時會擲回無效的作業例外狀況。

根據預設,當您將變數宣告為可為 Null 的型別時,它就沒有已定義的值 (HasValue 為 False),例外則為其基礎實值型別的預設值。

[類別設計工具] 會以顯示其基礎型別的方式來顯示可為 Null 的型別。

如需 Visual C# 中可為 Null 之型別的詳細資訊,請參閱可為 Null 的型別 (C# 程式設計手冊)。 如需 Visual Basic 中可為 Null 之型別的詳細資訊,請參閱可為 Null 的實值型別 (Visual Basic)

注意事項注意事項

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

若要使用類別設計工具加入可為 Null 的型別

  1. 在 [類別圖表] 中,展開現有的類別或建立新的類別。

  2. 若要將類別加入至專案,請按一下 [類別圖表] 功能表上的 [加入],然後按一下 [加入類別]。

  3. 若要展開類別圖案,請按一下 [類別圖表] 功能表上的 [展開]。

  4. 選取類別圖案。 按一下 [類別圖表] 功能表上的 [加入],然後按一下 [欄位]。 預設名稱為 [欄位] 的新欄位隨即出現在類別圖案和 [類別細節] 視窗中。

  5. 在 [類別細節] 視窗 (或者類別圖案本身) 的 [名稱] 資料行中,將新欄位的名稱變更為有效且有意義的名稱。

  6. 在 [類別細節] 視窗的 [型別] 資料行中,將型別宣告為可為 Null 的型別,如下列程式碼所示:

    // Declare a nullable type in Visual C#:
    class Test
    {
       int? building_number = 5;
    }
    
    ' Declare a nullable type in Visual Basic:
    Class Test
       Dim buildingNumber As Nullable(Of Integer) = 5
    End Class
    

若要使用程式碼編輯器加入可為 Null 的型別

  1. 將類別加入至專案。 選取 [方案總管] 中的專案節點,然後按一下 [專案] 功能表上的 [加入類別]。

  2. 在新類別的 .cs 或 .vb 檔案中,將新類別中一個或多個可為 Null 的型別加入至類別宣告。

  3. 從 [類別檢視] 中,將新類別圖示拖曳至 [類別設計工具] 的設計介面。 類別圖案隨即出現在類別圖表中。

  4. 展開類別圖案的細節,並將滑鼠指標移至類別成員上方。 工具提示隨即顯示每個成員的宣告。

  5. 以滑鼠右鍵按一下類別圖案,然後按一下 [類別細節]。 您可以在 [類別細節] 視窗中檢視或修改新型別的屬性。

請參閱

工作

HOW TO:識別可為 Null 的型別 (C# 程式設計手冊)

參考

可為 Null 的型別 (C# 程式設計手冊)

使用可為 Null 的型別 (C# 程式設計手冊)

Nullable<T>

概念

可為 Null 的實值型別 (Visual Basic)