При сравнении с минимумом или максимумом двух чисел/функций, замыкает ли С# короткое замыкание, если случай верен для первого и подразумевает истинность для второго? Конкретными примерами таких случаев являются
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())
дабы накоротко, но думаю понятнее какое сравнение без переписывания. Это короткое замыкание?
if( x > XYZ(y,z()))
Как компилятор может узнать результат XYZ? Макс, Мин, Среднее или что-то еще? - person L.B   schedule 18.01.2012Min
иMax
обрабатывают NaN. - person dan04   schedule 19.01.2012