当与两个数字/函数的最小值或最大值进行比较时,如果第一个的情况为真并且第二个的情况为真,C# 是否会短路?这些情况的具体例子是
if(x < Math.Max(y, z()))
和
if(x > Math.Min(y, z()))
因为Math.Max(y, z())
将返回一个至少与 y 一样大的值,如果 x < y 则不需要计算 z(),这可能需要一段时间。与 类似的情况Math.Min
。
我意识到这些都可以按照以下方式重写
if(x < y || x < z())
为了短路,但我认为在不重写的情况下比较是什么更清楚。这是短路吗?