我知道有很多这些,但我仍然卡住,我有以下代码:
public void SetUser(User user)
{
string streetNumber = "";
if (user.Address.StreetNo != null)
streetNumber = user.Address.StreetNo.ToString();
else
streetNumber = "";
}
我得到了流行的“对象引用未设置为对象的实例”。问题。 这可能是一些非常基本的东西,我的noob头脑无法接受,但我很感激你的帮助,所以感谢先进。
答案 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)
检查您的堆栈跟踪并:
使用if ... == null然后...
答案 4 :(得分:1)
if (user != null
&& user.Address != null
&& user.Address.StreetNo != null)
{
// ...
}