Существуют ли условные тесты короткого замыкания VB6? То есть, могу ли я быть уверен, что выражение вроде...
If index <= array_size And array(index) > something Then
никогда не будет ломать массив, каково бы ни было значение индекса?
Ответ 1
Нет, VB6 And и Or не имеют короткого замыкания (именно поэтому версии с коротким замыканием называются AndAlso и OrElse в VB.net - обратная совместимость).
Ответ 2
В дополнение к блоку If/Then/Else/End If, VB6 также поддерживает однострочную конструкцию If/Then/Else. Вы можете вложить их для достижения простого короткого замыкания. Однако, поскольку это однострочный оператор, вы должны выполнить требуемое действие в той же строке. Например:
' From (no short-circuit)
If index <= array_size And array(index) > something Then
' To (short-circuit)
If index <= array_size Then If array(index) > something Then ...
Ответ 3
Select Case - метод короткого замыкания, если вы можете использовать его для своей цели.