Имеет ли VB6 короткое замыкание в сложных условиях? - PullRequest
12 голосов
/ 25 октября 2010

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

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

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

Ответы [ 3 ]

25 голосов
/ 25 октября 2010

Нет, VB6 And и Or не допускают короткого замыкания (именно поэтому версии короткого замыкания называются AndAlso и OrElse в VB.net - обратная совместимость).

3 голосов
/ 07 марта 2014

В дополнение к блоку 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 ...
1 голос
/ 25 октября 2010

Select Case - это метод короткого замыкания, если вы можете использовать его для своих целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...