我想查看条件" _Email"第一次遇到并将结果传递给下一个if语句进行另一次检查,然后再次传递。如果_Email为null,我希望它是最后一次检查的空字符串。
这是代码
private string _Email;
public string Email
{
get
{
if (String.IsNullOrEmpty(_Email))
{
_Email = GetEmailAddress();
}
else if (_Email.IsEmptyOrNull())
{
_Email = User.Current.Preference("Email");
}
else if (_Email.IsEmptyOrNull())
{
_Email = "";
}
return _Email;
}
}
我不确定我做错了什么。如果您需要更多信息,请与我们联系。
答案 0 :(得分:4)
您需要删除代码中的else
,因为只会执行满足条件的第一个if子句
和IsNullOrEmpty
是String
类的静态方法。使用String.IsNullOrEmpty
代替_Email.IsNullOrEmpty
。 (当我尝试像_Email.IsNullOrEmpty
)
private string _Email;
public string Email
{
get
{
if (String.IsNullOrEmpty(_Email))
{
_Email = GetEmailAddress();
}
if (String.IsNullOrEmpty(_Email))
{
_Email = User.Current.Preference("Email");
}
if (String.IsNullOrEmpty(_Email))
{
_Email = "";
}
return _Email;
}
}
我建议将代码移到一个名为GetEmail
的方法中,以减少属性中的代码(在我看来它变得很丑陋)