某些值類型不一定總是有已定義的值(或需要這樣的值)。 這是資料庫中的常見做法,其中某些欄位可能未指派任何值。 例如,您可以將 Null 值指派給資料庫欄位,以表示尚未指派值。
可為 Null 的類型是經過擴充的值類型,使其不僅能接收該類型的典型值範圍,也能接受 Null 值。 例如,可空的Int32,也表示為 Nullable<Int32>,可以被指派任何值,從 -2147483648 到 2147483647,或指派空值。 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 的類型,就像它顯示其基礎類型一樣。
如需有關 C# 中可空型別的詳細資訊,請參閱 可空型別。 如需 Visual Basic 中可空值型別的資訊,請參閱 可空值型別。
備註
本文中的指示說明 Visual Studio 中可用的互動式開發體驗 (IDE) 最新版本。 您的電腦可能會顯示某些使用者介面元素的不同名稱或位置。 您可能使用不同的 Visual Studio 版本或不同的環境設定。 如需詳細資訊,請參閱 個人化 IDE。
使用類別設計器新增 Nullable 類型
在類別圖表中,展開現有的類別或建立新的類別。
若要將類別新增至專案,請在 [ 類別圖表 ] 功能表上,按兩下 [ 新增>類別]。
若要展開類別圖形,請在 [ 類別圖表 ] 功能表上,按兩下 [ 展開]。
選取類別圖形。 在 [ 類別圖表] 功能表上,按兩下 [ 新增>欄位]。 具有預設名稱 Field 的新欄位會出現在類別圖形中,也會出現在 [ 類別詳細數據 ] 視窗中。
在 [類別詳細數據] 視窗的 [名稱] 資料行中(或在類別圖形本身中),將新欄位的名稱變更為有效且有意義的名稱。
在 [類別詳細 視窗的 [類型] 資料行中,藉由指定以下內容,將類型設為可為 Null 的類型:
-
int?(Visual C#) -
Nullable(Of Integer)(Visual Basic)
-
使用程式碼編輯器新增可空的類型
將類別加入至專案。 在 [方案總管] 中選取項目節點,然後在 [ 專案 ] 功能表上,單擊 [ 新增類別]。
在新類別的 .cs 或 .vb 檔案中,將新類別中的一或多個可為 Null 型別新增到類別宣告中。
從 [類別檢視],將新的類別圖示拖曳至類別設計介面。 類別形狀會出現在類別圖中。
展開類別圖形的詳細數據,並將滑鼠指標移至類別成員上方。 工具提示會顯示每個成員的宣告。
以滑鼠右鍵按兩下類別圖形,然後按兩下 [ 類別詳細數據]。 您可以在 [ 類別詳細 資料] 視窗中檢視或修改新類型的屬性。