iT邦幫忙

3

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

c#

情境:

判斷當某個變數為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");
}


1 則留言

3
fysh711426
iT邦新手 2 級 ‧ 2018-04-14 10:29:32

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

暐翰 iT邦研究生 2 級‧ 2018-04-14 11:09:33 檢舉

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

我要留言

立即登入留言