4

私は書くことができます

if(Model.DecisionReason != null && Model.DecisionReason.Length > 35)
    return Model.DecisionReason.Substring(0, 32) + "...";
else
    return Model.DecisionReason;

での&&比較はif短絡し、Model.DecisionReasonnull の場合は例外を防ぎます。しかし、私が書くならば

return (Model.DecisionReason != null && Model.DecisionReason.Length > 35) ?
     Model.DecisionReason.Substring(0, 32) + "..." :
     Model.DecisionReason;

短絡はなく、例外にヒットしました。短絡する方法はありますか、または長さの比較をifnullまたはネストされた三項のチェックでラップする必要がありますか(最も読みやすいものではありません)?

4

1 に答える 1

7

作成した両方のコード サンプルの動作は同じです。それはif短絡ではなく、単に&&式自体のコア コンポーネントです。

于 2012-04-12T16:52:36.750 に答える