加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 嵌套的三元运算符

发布时间:2020-12-15 20:03:05 所属栏目:百科 来源:网络整理
导读:我有这个代码: _viewModel.PhoneDefault = user == null ? "" : (string.IsNullOrEmpty(user.PhoneDay) ? (string.IsNullOrEmpty(user.PhoneEvening) ? (string.IsNullOrEmpty(user.Mobile) ? "" : user.Mobile) : user.PhoneEvening) : user.PhoneDay); 是
我有这个代码:

_viewModel.PhoneDefault = user == null ? "" :
    (string.IsNullOrEmpty(user.PhoneDay) ?
        (string.IsNullOrEmpty(user.PhoneEvening) ?
            (string.IsNullOrEmpty(user.Mobile) ? "" : 
                user.Mobile) :
            user.PhoneEvening) :
         user.PhoneDay);

是否有更好的方法来编写它以使其更具可读性?

解决方法

在您的情况下,您可以编写一个辅助函数,如下所示:

// return the first parameter that isn't null or empty
public static string CoalesceStrings(params string[] src)
{
    foreach (var str in src)
        if (!string.IsNullOrEmpty(str))
            return str;
    return "";
}

然后就这样打电话,就像这样:

_viewModel.PhoneDefault = user == null ? "" :
    CoalesceStrings(user.PhoneDay,user.PhoneEvening,user.Mobile);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读