c# 运算符 ? ??
生活随笔
收集整理的這篇文章主要介紹了
c# 运算符 ? ??
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
static void Main(string[] args){//空合并行運算??/*?? 提供了一種快捷方式,可以在處理可空類型和引用類型時表示null值的可能性,這個運算符放在兩個操作數之間,第一個操作數必須是一個可空類型或者引用類型,第二個操作數必須與第一個操作數類型相同,或者可以隱式轉換為第一個操作數的類型1、如果第一個操作數不是null,整個表達式就等于第一個操作數的值;2、如果第一個操作數是null, 整個表達式就等于第二個操作數的值*/int? a = null;int b;b = a ?? 10;a = 3;Console.WriteLine(b); // 10b = a ?? 10;Console.WriteLine(b); //3//空值傳播運算符 object?.method;/** 生產環境中代碼會檢查驗證變量空值條件,訪問變量時需要檢查判斷是否為null,否則會拋出NullReferenceException, 但是有時很容易忘記這樣的檢查,可以利用空值傳播的特性來簡化代碼*/int? d = 2;Console.WriteLine(d?.ToString().GetType().Name); // Stringd = null;Console.WriteLine(d?.ToString().GetType().Name); // null//當空值傳播類型訪問int類型的屬性時,不能將結果直接分配給int,因為結果可能為null,可以將結果分配為可空的int?//當然我們也可以結合空合并行運算符的特性??來實現
Person p = new Person();int e = p?.Age ?? 666;Console.WriteLine(e); //123
p = null;e = p?.Age ?? 666;Console.WriteLine(e); //666//當然也可以將這種特性用于數組的可空判斷int[] arr = null;Console.WriteLine(arr?[0]); //null
arr = new[] {1, 2, 3};Console.WriteLine(arr?[0]); //1Console.ReadKey();
?
轉載于:https://www.cnblogs.com/alplf123/p/10033550.html
總結
以上是生活随笔為你收集整理的c# 运算符 ? ??的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毕业设计:文献参考(十三)
- 下一篇: C#打印0到100的素数