今天看到這個 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
Firefox 4.01
Google Chrome 5:
Safari 5:
從上面畫面的結果來看, 發現 IE9 及 Google Chrome 會有含路徑的檔名, 但會隱藏路徑, 而 Firefox 4.01及 Safari 5則只會出現檔名而已, 不會有路徑, 而 IE6, IE7, IE8 的狀況則是 IE8 會像 IE9 一樣, 但 IE7, IE6 則是真實的檔案路徑, 如下:
IE7:
IE8:
這樣就清楚啦!
