C# · 12月 25, 2021

c# – 检测浏览器语言并避免空引用异常

我想检测浏览器语言,所以当人们连接到我的网站时,我可以切换语言.
但是当用户没有在浏览器选项中填写语言时,我总是得到一个空值 string browserlanguage = Request.UserLanguages[0]

我如何避免错误“对象引用未设置为对象的实例”.

解决方法 检查Request.UserLanguages!= null.

例如:

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

编辑:(你的评论)如果上面的失败也是,请求本身是null,哪个是不可能的(你可以检查请求!= null以确保?).你的代码稍后可能有一个null引用?