vb.net
if( x isNot Nothing AndAlso x.go()) then
- Оценка проводится слева направо
- AndAlso оператор гарантирует, что только если левая сторона была ИСТИНА, правая сторона будет оценена (очень важно, так как, если x - ничто, x.go потерпит крах)
Вы можете использовать И вместо And Также в vb. в этом случае левая сторона также оценивается первой, но правая будет оцениваться независимо от результата.
Лучшая практика: всегда используйте AndAlso, если только у вас нет веских причин, почему бы и нет.
В последующем спросили, почему или когда кто-то будет использовать И вместо AndAlso (или & вместо &&):
Вот пример:
if ( x.init() And y.init()) then
x.process(y)
end
y.doDance()
В этом случае я хочу инициализировать оба X и Y. Y должен быть инициализирован, чтобы y.DoDance мог выполняться. Тем не менее, в функции init () я также делаю некоторые дополнительные вещи, такие как проверка, открыт ли сокет, и только если это работает нормально, для и , я должен пойти дальше и выполнить x.process ( у).
Опять же, это, вероятно, не нужно и не элегантно в 99% случаев, поэтому я сказал, что по умолчанию должно использоваться AndAlso .