Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在测试null时收到此NullReferenceException错误?_C#_Asp.net_Web Services - Fatal编程技术网

C# 为什么在测试null时收到此NullReferenceException错误?

C# 为什么在测试null时收到此NullReferenceException错误?,c#,asp.net,web-services,C#,Asp.net,Web Services,我在以下代码行收到一个错误:对象引用未设置为对象的实例 if (Session["AutoCompleteCustomersPhone"] != null) 完整的代码块: if (Session["AutoCompleteCustomersPhone"] != null) earchCustomerPhone = true; else { searchCustomerPhone = bool.Parse(Session["AutoCompleteCustome

我在以下代码行收到一个错误:对象引用未设置为对象的实例

if (Session["AutoCompleteCustomersPhone"] != null)
完整的代码块:

if (Session["AutoCompleteCustomersPhone"] != null)
    earchCustomerPhone = true;
else
{
    searchCustomerPhone =
        bool.Parse(Session["AutoCompleteCustomersPhone"].ToString());
}
为什么在null测试中,我会收到这个错误


你的
if
语句是错误的。如果该值为null,则尝试使用该值

更改此项:

if (Session["AutoCompleteCustomersPhone"] != null)
为此:

if (Session["AutoCompleteCustomersPhone"] == null)
我会先解决这个问题,看看这是否能解决问题

来自该特定行的异常可能是因为:

  • Session
    变量为空-您可以在调试器中验证这一点
  • 编译后的代码与用于调试的源代码不同。尝试清理和重建

    • 因为sessionn对象本身为空

      我认为您正在使用webservice,这就是会话为空的原因*


      如果您在Web服务中使用会话,请检查此选项:

      最有可能的是,
      会话本身为
      null
      。此代码具体在哪里运行?它可能会给我们一个关于会话为空的线索……这是在ASMX web服务中还是在WCF中?+1很好,但这不会导致在这一行出现异常。@greg84在else中是的,但奇怪的是为什么在
      if
      中报告异常,因此我修改了“在这一行”。这就是为什么使用“not”编写if语句的原因逻辑会让人陷入麻烦@马克是正确的,你的if语句是反向的。我最初尝试过这个,但失败了。所以我换成了!=当这不起作用时,我发布了问题。谢谢你@Kevin切换它只会使代码在逻辑上不正确。发生异常时,您可以查看当前在范围内的每个变量中的值。如果其中任何一个为null,则该值将声明为null。检查会话对象。您确实是正确的。这是一个网络服务。我想我的下一个问题是,是否可以在web服务中使用会话?不过,这是另一个话题。谢谢。@Kevin-查看我粘贴的文章链接,解决您的问题