Null值條件運算符屬於C#6.0的語法糖
使用方法:變量名?.屬性
下列Person為使用到的類
1 public class Person 2 { 3 public string Name { get; set; } 4 5 public int Age { get; set; } 6 7 public int? Height { get; set; } 8 }
如果使用下列調用方式,則會引起NullReferenceException異常
為了容錯,我們一般會在代碼里寫這樣的判斷
1 Person p = null; 2 if (p!=null) 3 { 4 string pName = p.Name; 5 }
在C#6.0以后推出了Null值條件運算符,我們可以簡化成這樣的寫法
1 Person p = null; 2 string pName = p?.Name;
當然我們也可以使用三元運算符來做判斷
1 string pName = p == null ? null : p.Name;
我在項目中經常使用到該運算符,在一些帶有釋放資源的finally代碼塊中使用會引起非常的舒適
如果項目中支持C#6.0那么最好是優先使用此方法,與if使用方式來說兩者的IL代碼是不同的,對該運算符的IL代碼有想深入了解請參考此博客https://www.cnblogs.com/linianhui/p/csharp6_null-conditional-operators.html#auto_id_1