C#语法糖 Null 条件运算符 【?.】
生活随笔
收集整理的這篇文章主要介紹了
C#语法糖 Null 条件运算符 【?.】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例子
比如說:我們有一個UserInformation類
public?class?UserInformation{?public?string?Name?{?get;?set;?}public?List<string>?Address?{?get;?set;?}}有下面一段代碼,我們獲取張三的第一個地址
static?void?Main(string[]?args){UserInformation?user?=?new?UserInformation();user.Name?=?"張三";user.Address?=?new?List<string>?{?"浙江省",?"上海市"?};string?address?=?user.Address.First();}因為我們已經知道UserInformation類的Address屬性是有值的,這樣寫肯定是沒有任何問題的,但是List是一個引用類型可以為null,,我們在使用的時候根本不知道Address屬性是否有值,比如說:
static?void?Main(string[]?args){UserInformation?user?=?new?UserInformation();user.Name?=?"張三";user.Address?=?null;string?address?=?user.Address.First();}我們肯定會去判斷Address是否為空,但是我們為了代碼健壯性,我們第一段代碼應該修改成:
static?void?Main(string[]?args){UserInformation?user?=?new?UserInformation();user.Name?=?"張三";user.Address?=?new?List<string>?{?"浙江省",?"上海市"?};if(user.Address!=null){string?address?=?user.Address.First();}}這樣才是一個正確的例子,但是有的人就覺得這樣寫很麻煩,多了三行代碼,于是微軟為了解決這個問題就添加了Null 條件運算符?.?這個語法糖, 那上面代碼可以改成什么樣子呢?
static?void?Main(string[]?args){UserInformation?user?=?new?UserInformation();user.Name?=?"張三";user.Address?=?new?List<string>?{?"浙江省",?"上海市"?};string?address?=?user.Address?.First();Console.ReadLine();}這樣寫的話是不是就很便捷了,可讀性也高,性能也不會損失,編譯器就給我們把這個事情做了
最后大家如果喜歡我的文章,還麻煩給個關注并點個贊, 希望net生態圈越來越好!
總結
以上是生活随笔為你收集整理的C#语法糖 Null 条件运算符 【?.】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.NET Core一个接口的多个实
- 下一篇: NHibernate中的SchemaEx