分類
.net

C# Operator ??

今天看到這個 operator ?? , 雖然可以了解前後文他的功能, 不過還真是第一次看到.

於是查了一下, 在 msdn 上的說明:

http://msdn.microsoft.com/en-us/library/ms173224.aspx

這個運算子的應用情境如下:

string mytest = "";
if(Request.QueryString["test"]==null){
  mytest = "";
}else{
  mytest = Request.QueryString["test"];
}

若在取得變數時, 會有 null 的狀況, 又要給定預設值時, 可以利用上面程式碼, 不過是不是又臭又長呢? 可以利用這個運算子 ?? 來簡化, 如下:

string mytest = Request.QueryString["test"] ?? "";

當然, 和三元運算子的寫法同義, 只是上面的 ?? 更精簡一些:

string mytest = Request.QueryString["test"] == null ? "" :  Request.QueryString["test"];

相關閱讀:
http://demo.tc/Post/414

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *