嵌套三个if语句

时间:2016-09-12 19:24:57

标签: c# if-statement

我想查看条件" _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;
        }
    }

我不确定我做错了什么。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:4)

您需要删除代码中的else,因为只会执行满足条件的第一个if子句

IsNullOrEmptyString类的静态方法。使用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的方法中,以减少属性中的代码(在我看来它变得很丑陋)