文章出處

一個值類型永遠不可能為null,但是當數據庫中的某列數據允許為空時,或者另一種語言中的數據類型(引用類型)對應C#的是值類型,當需要和另外的語言交互時,就有可能需要處理空值的問題。所以,CLR中引用了可空類型System.Nullable<T>

   Nullable<int> x = 6;
   Nullable<int> y = null;
   int? z = null;//等價于 Nullable<int>
   Console.WriteLine("{0}:{1}", x.HasValue, x.HasValue);
   Console.WriteLine("{0}:{1}", y.HasValue, y.GetValueOrDefault());
   Console.WriteLine("{0}:{1}", z.HasValue, z.GetValueOrDefault());

空接合操作符

??表示如果操作符左邊的數不為null就返回該操作數,否則返回右邊的操作符。空接合操作符不但可以作用于引用類型還可以作用于值類型。利用好空接合操作符,我們可以寫出更為優雅的代碼。

    int? x = null;
    int y = x ?? 5;
Func<string> output = () => DoSome() ?? "effective";

可空類型的GetType()

  int? x = 6;
  Console.WriteLine(x.GetType());//x.GetType()返回的并不是System.Nullable<Int32>而是System.Int32

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()