Должен ли я всегда использовать операторы AndAlso и OrElse?

Есть ли какое-либо обстоятельство, в котором я бы не хотел использовать оператор AndAlso, а не And оператор? & hellip или в котором я бы не хотел использовать оператор OrElse, а не Or?

Ответ 1

От MSDN:

Компрессия с коротким замыканием

Короткое замыкание может повысить производительность, не оценивая выражение, которое не может изменить результат логической операции. Однако, если это выражение выполняет дополнительные действия, короткое замыкание пропускает эти действия. Например, если выражение включает вызов процедуры Function, эта процедура не вызывается, если выражение коротко замкнуто, а любой дополнительный код, содержащийся в функции, не запускается. Если ваша программная логика зависит от любого из этого дополнительного кода, вам, вероятно, следует избегать операторов короткого замыкания.

Ответ 2

Существуют ли обстоятельства, при которых я не хотел бы использовать оператор AndAlso вместо оператора And?

Конечно: если вы хотите убедиться, что обе стороны выражения оценены. Это может иметь место, если, например, обе стороны являются вызовами методов, которые возвращают логические значения в результате какой-то другой операции, которая имеет побочный эффект.

Но в целом используйте AndAlso/OrElse всякий раз, когда вы используете &&/|| в C/C++/С#, что, конечно, в подавляющем большинстве случаев.