文章出處
文章列表
一個值類型永遠不可能為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
文章列表
全站熱搜
留言列表
