C# NULL值條件運算子 ?.
阿新 • • 發佈:2019-01-13
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