有没有办法使三元操作短路
本文关键字:三元 操作 短路 有没有 | 更新日期: 2023-09-27 18:31:07
我可以写
if(Model.DecisionReason != null && Model.DecisionReason.Length > 35)
return Model.DecisionReason.Substring(0, 32) + "...";
else
return Model.DecisionReason;
并且if
中的&&
比较将短路,防止Model.DecisionReason
为空时出现异常。但是,如果我写
return (Model.DecisionReason != null && Model.DecisionReason.Length > 35) ?
Model.DecisionReason.Substring(0, 32) + "..." :
Model.DecisionReason;
没有短路,我遇到了例外。有没有办法使其短路,或者我是否被迫将长度比较包装在 if
检查空或嵌套三元组(不是最易读的)中?
您编写的两个代码示例将具有相同的行为。 短路的不是if
,而只是&&
表达式本身的核心组件。