最小または最大の2つの数値/関数と比較する場合、最初のケースが真であり、2番目のケースが真である場合、C#は短絡しますか?これらのケースの具体例は次のとおりです。
if(x < Math.Max(y, z()))
と
if(x > Math.Min(y, z()))
は少なくともyと同じ大きさの値を返すためMath.Max(y, z())
、x <yの場合、z()を評価する必要はありません。これには時間がかかる場合があります。と同様の状況Math.Min
。
これらは両方とも次のように書き直すことができると思います
if(x < y || x < z())
短絡させるためですが、書き直さなくても比較がより明確になると思います。これは短絡しますか?