Подтвердить что ты не робот

Сложны ли условия короткого замыкания VB6?

Существуют ли условные тесты короткого замыкания VB6? То есть, могу ли я быть уверен, что выражение вроде...

If index <= array_size And array(index) > something Then

никогда не будет ломать массив, каково бы ни было значение индекса?

4b9b3361

Ответ 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 - метод короткого замыкания, если вы можете использовать его для своей цели.