2011-04-18 111 views
9

我想檢測瀏覽器語言,以便在人們連接到我的網站時切換語言。 但是,當填充在語言的瀏覽器選項的用戶處理不當我總是用檢測瀏覽器語言並避免空引用異常

string browserlanguage = Request.UserLanguages[0] 

我怎麼能避免錯誤空值「對象引用不設置到對象的實例。」

回答

9

檢查Request.UserLanguages != null

例如:

var l = Request.UserLanguages; 
string browserlanguage = l ?? l[0] : "en"; 
// fall back to en, or set to "" or null. 

編輯:(重新您的評論)如果上述失敗,也Request本身爲空,這AFAIK是不可能的(你可以檢查Request != null以確保?)。你以後在代碼中可能有空引用嗎?如果語句的語法是錯誤的,你貼什麼

+0

Request.UserLanguages!= NULL工作得很好,THKū – Sjemmie 2011-04-18 11:39:27

+0

好吧,偉大的:) – mafu 2011-04-18 11:41:24

+0

剛擡起頭,三元。 應該是 '''string browerlanguage = l? l [0]:「en」;''' – AjayAujla 2017-07-27 16:53:45

6
string lang = (Request.UserLanguages ?? Enumerable.Empty<string>()).FirstOrDefault();