我可以编写代码
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;
没有短路并且我遇到了异常。有没有办法使其短路,或者我必须要么将长度比较包装在一个针对null的if
检查中,要么嵌套三元运算符(不是最易读的?)