C# 检查null后System.NullReferenceException异常
我有一个简单的函数来记录显示某些页面时可能发生的错误。 我正在使用null合并操作符来确保string.Format中没有任何C# 检查null后System.NullReferenceException异常,c#,asp.net,C#,Asp.net,我有一个简单的函数来记录显示某些页面时可能发生的错误。 我正在使用null合并操作符来确保string.Format中没有任何null。但是,我仍然在事件日志中看到这些错误: 空合并运算符不应该阻止这种情况发生吗?您的请求。ServerVariables[“HTTP\u COOKIE”]不会检查空值 试试这个: string httpCookie = string.Empty; if (Request.ServerVariables["HTTP_COOKIE"] != null) { ht
null
。但是,我仍然在事件日志中看到这些错误:
空合并运算符不应该阻止这种情况发生吗?您的
请求。ServerVariables[“HTTP\u COOKIE”]
不会检查空值
试试这个:
string httpCookie = string.Empty;
if (Request.ServerVariables["HTTP_COOKIE"] != null)
{
httpCookie = Request.ServerVariables["HTTP_COOKIE"].Substring(0, (Request.ServerVariables["HTTP_COOKIE"].Length>399)?399:Request.ServerVariables["HTTP_COOKIE"].Length)
}
您的
请求.ServerVariables[“HTTP\u COOKIE”]
未检查空值
试试这个:
string httpCookie = string.Empty;
if (Request.ServerVariables["HTTP_COOKIE"] != null)
{
httpCookie = Request.ServerVariables["HTTP_COOKIE"].Substring(0, (Request.ServerVariables["HTTP_COOKIE"].Length>399)?399:Request.ServerVariables["HTTP_COOKIE"].Length)
}
其中一个变量绝对为空。使用调试器,卢克
Request.ServerVariables[“HTTP\U COOKIE”]。子字符串(…)
-您在哪里检查null?大多数??
运算符都不是必需的,因为string.Format
对它接受的参数数组中的null
引用感到满意。但是,正如其他人所说,您不能在null
引用上调用.Substring(…)
。您的变量之一肯定是null。使用调试器,卢克Request.ServerVariables[“HTTP\U COOKIE”]。子字符串(…)
-您在哪里检查null?大多数??
运算符都不是必需的,因为string.Format
对它接受的参数数组中的null
引用感到满意。然而,正如其他人所说,您不能在null
引用上调用.Substring(…)
。事实上。。。错过了那个。谢谢只能在10分钟内接受mins@Cornwell您可以创建一个扩展名,比如publicstaticstringtruncate(这个字符串是stringOrNull,int-maxLength){return stringOrNull==null | | stringOrNull.Length@JeppeStigNielsen谢谢!确实……错过了那个。谢谢。只能在10分钟内接受它mins@Cornwell您可以创建一个扩展名,比如publicstaticstringtruncate(这个字符串是stringOrNull,int-maxLength){returnstringornull==null | | | stringOrNull.Length@JeppeStigNielsen谢谢!
string httpCookie = string.Empty;
if (Request.ServerVariables["HTTP_COOKIE"] != null)
{
httpCookie = Request.ServerVariables["HTTP_COOKIE"].Substring(0, (Request.ServerVariables["HTTP_COOKIE"].Length>399)?399:Request.ServerVariables["HTTP_COOKIE"].Length)
}