1

次のコードは良いスタイルですか。オブジェクトが null の場合、2 番目の述語が実行されないと常に想定できますか?

if(someObject == null || someObject.Count == 0)
{
    //do something
}
4

3 に答える 3

7

はい。||つまり、true を返す (最初のオペランドが true である) ことを十分に認識している場合、2 番目のオペランドを評価せず、すぐに true を返します。

&&同様です - 最初のオペランドが false を返す場合、2 番目をチェックせずにすぐに false を返します。

于 2013-03-21T22:08:30.710 に答える
4

正しい。左の式が評価されるとtrue、右の式は評価されません。両方を確実に評価したい場合は、ビットごとのOR演算子を使用でき|ます。

if(someObject == null | someObject.Count == 0)
{
    //do something
}

これには注意してください。常に期待どおりの結果が得られるとは限りません。

于 2013-03-21T22:09:51.460 に答える
3

はい。||C# ショート サーキットの演算子。最初の条件が満たされない場合、次の条件は実行されません。

于 2013-03-21T22:08:08.557 に答える