1. 程式人生 > >C# NULL值條件運算子 ?.

C# NULL值條件運算子 ?.

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