如何在C#中将if-else语句改写为单行代码(优化重复代码)
简化重复逻辑的单行写法
你可以利用三元运算符把变量选择和格式化逻辑合并成一行,消除重复的string.Format调用:
var zp = __Services.GetValue("Z", Order.Code); var St = string.Format(sp.Label != null ? _Services.GetValue("Z", sp.Label) : zp, ......., userProfile.DisplayName());
如果想要更紧凑的写法(可读性稍有下降,按需选择),还能把zp的获取也整合进去:
var St = string.Format(sp.Label != null ? _Services.GetValue("Z", sp.Label) : __Services.GetValue("Z", Order.Code), ......., userProfile.DisplayName());
简单解释
- 三元表达式
sp.Label != null ? 表达式1 : 表达式2会根据条件返回对应的值,直接替代了原来的if-else分支判断 - 这样就把重复的
string.Format调用合并成一次,只在模板参数上做条件区分,达到精简代码的目的
内容的提问来源于stack exchange,提问作者test test
相关产品推荐
相关产品推荐

