iT邦幫忙

2023 iThome 鐵人賽

DAY 8
1

一開始看到同事們寫? ?? 想說只是三元表達式 有不一樣嗎
但後來才弄懂怎麼一回事/images/emoticon/emoticon06.gif

?:運算子

條件運算子 ?: (也稱為三元條件運算子) 會評估布林運算式,
並且根據布林運算式評估為 true 或 false,傳回兩個運算式其中之一的結果

意思就是:如果條件為真 ? 則為 X : 否則為 Y

範例:

 string str1 = (str2 != null) ? str2 : string.empty()";
 //翻譯: 若str2不為null(空值)就顯示str2否則就顯示空字串

??運算子

C# 中的這個運算子 "??" 主要用途是用來檢查變數的值是不是為 null

範例:

 string str1 = str2 ?? string.empty();
 //翻譯:若str2不為null(空值)就顯示str2否則就顯示空字串

有沒有發現!是一樣意思 但是看起來簡潔多了對吧~~

然後用到?們的原因主要是在有些時候,嘗試將「可為 null 的型別」指派給「不可為 null 的型別」時,將會產生編譯時期錯誤。這時使用 ?? 運算子就非常方便/images/emoticon/emoticon07.gif

參考來源:
發現 C# 中有一個特殊的運算子 "??"
C# Operator 特殊的運算子 ?: 、??和?.


上一篇
day7. C#基礎篇-ToString (格式化字串)、Substring(擷取字串)
下一篇
day9. Visual Studio 快捷鍵
系列文
新手工程師第一份專案會遇到的職場大小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言