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