當前位置:編程學習大全網 - 網絡軟體 - 認識C#中使用Nullable類型[1]

認識C#中使用Nullable類型[1]

 在C# x的版本中 壹個值類型變量是不可以被賦予null值的 否則會產生異常 在C# 中 微軟提供了Nullable類型 允許用它定義包含null值(即空值)的數據類型 這對處理數據庫中包含可選字段以及很多方面都有很大幫助

  定義Nullable類型

 定義壹個nullable類型非常類似於定義壹個非nullable類型 不同之處在於使用類型修飾符 ? 比如定義壹個整型如下

 int myInt = ;要使壹個整型變量可以存儲壹個null值 可以如下聲明

 int? myNullableInt = ;這兩個變量看起來似乎是壹樣的 但事實並非如此 實際上 Nullable類型是壹個結構體 它有兩個公開可讀字段 HasValue和Value HasValue是壹個布爾值 當有值存儲時它為真 當變量值為null時HasValue為假 當HavValue為真是時 可以取得變量的值 為假時 當嘗試取得變量的值時會拋出壹個異常

 現在null是C#的壹個關鍵字 它可以被賦給壹個Nullable型變量 下面是對Nullable型變量賦值的兩種有效方式

 double? myDouble = ;double? myOtherDouble = null;可以看到 myDouble被賦給壹個值 它也可以被賦以null 在第二個語句中 myOtherDouble被初始化為null——在壹個非Nullable型變量中這樣做會產生異常

 使用nullable類型 壹個Nullable型變量可以像壹般值類型那樣使用 在編譯過程中Nullable型變量和非Nullable型變量會進行隱式田轉換 就是說我們可以把壹個標準整型賦給壹個整型Nullable變量 反之亦然 參考下面示例代碼

int? nFirst = null;

 int Second = ;

 nFirst = Second;

 // 可以

 nFirst = ;

 // 可以

 Second = nFirst;

 //也可以 因為此時nFirst== nFirst = null;

 // 可以

 Second = nFirst;

 // 拋出異常 Second 是壹個非nullable型變量

 可以看到 只要壹個Nullable型變量的值不是null 它就可以和壹個非Nullable型變量交換變量的值 如果包含null值

 就會拋出異常 為避免異常發生 可以利用Nullable型變量的HasValue屬性 if (nFirst HasValue) Second = nFirst;

 如上所示 如果nFirst 含有壹個值 這個賦值語句就會運行 否則 就會跳過

 在Nullable值中使用操作符 Lifed Operators 兩個相同類型的Nullable型和非Nullable型變量除了可以相互自動轉化之外 還可以通過操作符在它們中進行操作 參考下面代碼

lishixinzhi/Article/program/net/201311/14979

  • 上一篇:網卡驅動老是安裝失敗
  • 下一篇:《劍王朝》結局:長孫淺雪犧牲,丁寧傷心過度變白頭?
  • copyright 2024編程學習大全網