首页 新闻 会员 周边 捐助

c# 如何简写这个表达式

0
悬赏园豆:10 [已解决问题] 解决于 2018-01-11 15:25
string Expr(Model model)
{
      retrun string.IsNullOrEmpty(model.User.Remark) ? model.User.CnName : model.User.EnName;
}

这个方法里面的三元表达式,看起来很臃肿,请问如何才能优雅的表达?

蝌蝌的主页 蝌蝌 | 初学一级 | 园豆:158
提问于:2018-01-08 18:01
< >
分享
最佳答案
0

眼不见,心不烦

string Expr(Model model)
{
    return model.Use.Name;
}

移走

public class User
{
    public string Name => string.IsNullOrEmpty(Remark) ? CnName : EnName;
    public string EnName { get; set; }
    public string CnName { get; set; }
    public string Remark { get; set; }
}

public class Model
{
    public User Use { get; set; }
}
收获园豆:5
dudu | 高人七级 |园豆:30925 | 2018-01-08 20:40
其他回答(3)
0

void Expr(Model model) {

    var user = model.User;

    if (string.isNullOrEmpty(user.Remark) {

   return user.CnName;

   } else {

   return user.EnName;

}

}

晋升中的FE | 园豆:519 (小虾三级) | 2018-01-08 18:12
0

很明显上面两位返回值都是错误的,已经是最好看的写法了——超能计算机还没出世 。

如果非要给个选项还可以好看点的话:

Func<Model , string> Expr { get; } = account => { return string.IsNullOrEmpty(user.Remark) ? user.CnName : user.EnName; };

收获园豆:3
花飘水流兮 | 园豆:13615 (专家六级) | 2018-01-08 19:11

这个更看不懂了。

支持(0) 反对(0) DZCMS | 园豆:5 (初学一级) | 2018-01-08 20:06
0

已经很不错了,你要相信Go语言里面根本没有三元运算符。

收获园豆:2
女孩不哭 | 园豆:469 (菜鸟二级) | 2018-01-09 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册