iT邦幫忙

7

【C#】小知識 #3 : ??(null 聯合運算子)

c#
暐翰 2018-04-14 09:18:3010441 瀏覽
  • 分享至 

  • xImage
  •  

情境:

判斷當某個變數為null的時候,丟出exception
通常要實現此邏輯,需要寫一個變數保存,接著判斷是否為null。

static List<string> listUser = new List<string>(){
	"xxxyyyzzz"
};

void checkUser(string UserID){
	//一般作法
	var userid_normal = listUser.Where(w=>w.Equals(UserID)).SingleOrDefault();
	if(userid_normal == null)
		throw new Exception("沒有此帳號");
}

void Main()
{
	checkUser("xxxyyyzzz");
	checkUser("error_user_id");
}

想要在縮短行數,可以使用null 聯合運算子
使用方式再取值後面加上??+動作

舉例:

static List<string> listUser = new List<string>(){
	"xxxyyyzzz"
};

void checkUser(string UserID){
	//null 聯合運算子 方式
	var userid_ternary_condition = listUser.Where(w => w.Equals(UserID)).SingleOrDefault()??throw new Exception("沒有此帳號");

}

void Main()
{
	checkUser("xxxyyyzzz");
	checkUser("error_user_id");
}


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

3
小碼農米爾
iT邦高手 1 級 ‧ 2018-04-14 10:29:32

在推薦一個 Null 條件運算子 ?.,這個也很好用。

暐翰 iT邦大師 1 級 ‧ 2018-04-14 11:09:33 檢舉

謝謝!/images/emoticon/emoticon12.gif
有興趣的人可以來官網看使用說明
Null 條件運算子

我要留言

立即登入留言