Возможный дубликат:
Продолжает ли компилятор вычислять выражение, в котором все должны быть истинными, если первое ложно?
Разница между нетерпеливой операцией и операцией короткого замыкания? (| versu || and & versu &&)Итак, вот мой вопрос. Если у меня есть это
if (Foo() && Bar()) DoStuff();
, если Foo() возвращает false, будет ли он по-прежнему работать через Bar()? или мне нужно иметь
if (Foo()) if (Bar()) DoStuff();
, чтобы гарантировать что он проходит только минимальное количество, необходимое перед «отказом»?