Tom*_*len 4 c# asp.net nullreferenceexception query-string
此代码抛出页面查询字符串中未指定的NullReferenceExceptionif mode:
bool isAdvancedMode = Request.QueryString["mode"].Equals("advanced");
Run Code Online (Sandbox Code Playgroud)
这是我解决这个问题的方法:
bool isAdvancedMode = (Request.QueryString["mode"] + "").Equals("advanced");
Run Code Online (Sandbox Code Playgroud)
这是标准做法还是黑客攻击?
您可以使用null-coalescing运算符:
bool isAdvancedMode = (Request.QueryString["mode"] ?? String.Empty).Equals("advanced");
Run Code Online (Sandbox Code Playgroud)
编辑:如果要重新使用此逻辑,请尝试以下扩展方法:
public static bool EqualIfExists(this string source, string comparison)
{
return source != null && source.Equals(comparison);
}
Request.QueryString["mode"].EqualIfExists("advanced")
Run Code Online (Sandbox Code Playgroud)
添加更多覆盖以匹配Equals签名.我不确定这是不是一个好名字(我认为不是).
| 归档时间: |
|
| 查看次数: |
1916 次 |
| 最近记录: |