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

时间:2011-08-19 08:19:45

标签: c# .net asp.net null

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

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

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

我得到了流行的“对象引用未设置为对象的实例”。问题。 这可能是一些非常基本的东西,我的noob头脑无法接受,但我很感激你的帮助,所以感谢先进。

5 个答案:

答案 0 :(得分:2)

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();
   }
}

答案 1 :(得分:2)

public void SetUser(User user) 
{    
   string streetNumber = String.Empty;     

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

答案 2 :(得分:1)

user为空,或user.Address为空。你也需要测试它们。

答案 3 :(得分:1)

检查您的堆栈跟踪并:

  • 用户
  • user.Address
  • user.Address.StreetNo

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

答案 4 :(得分:1)

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