繁体   English   中英

C#对象引用未设置为对象的实例

[英]C# Object reference not set to an instance of an object

我知道有很多,但是我仍然被卡住,我有以下代码:

public void SetUser(User user)
{
   string streetNumber = "";

   if (user.Address.StreetNo != null)
      streetNumber = user.Address.StreetNo.ToString();
   else
     streetNumber = "";
}

我得到了流行的“对象引用未设置为对象的实例”。 问题。 这是我的菜鸟无法接受的非常基本的东西,但是我很感谢您的帮助,在此先谢谢您。

public void SetUser(User user)
{
   string streetNumber = "";

   if (user != null && user.Address != null && user.Address.StreetNo != null) {
      streetNumber = user.Address.StreetNo.ToString();
   }
}

考虑到@CKoenig的建议,如果user或user.Address为null,则以下内容引发异常:

public void SetUser(User user)
{

   if (user == null) {
       throw new System.ArgumentNullException("user", "user cannot be null");
   }

   if (user.Address == null) {
       throw new System.ArgumentNullException("Address", "Address cannot be null");
   }

   string streetNumber = "";

   if (user.Address.StreetNo != null) {
      streetNumber = user.Address.StreetNo.ToString();
   }
}
public void SetUser(User user) 
{    
   string streetNumber = String.Empty;     

   if (user!= null 
       && user.Address != null 
       && user.Address.StreetNo != null)       
   {
         streetNumber = user.Address.StreetNo.ToString();    
   }
}

user为null或user.Address为null。 您也需要对其进行测试。

检查您的堆栈跟踪并:

  • 用户
  • 用户地址
  • user.Address.StreetNo

用if ... == null然后...

if (user != null
    && user.Address != null
    && user.Address.StreetNo != null)
{
    // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM