Выход из VB.NET с блоком - PullRequest
2 голосов
/ 10 марта 2011

В следующем блоке кода VB.NET корректно выходит из блока С, если Var1 = 2?

With MyObject
    .Property1 = "test"
    If Var1 = 2 Then
        Return True
    End If
    .Property2 = "Test2"
End With

Return False

Я помню, что это была проблема в VB6 и вызывающая головные боли с непредсказуемым поведением - то же самое верно и для VB.NET?

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

Пришлось добавить еще один ответ, потому что мне было в основном любопытно.Никогда не использовал WITH много, и я не могу вспомнить, чтобы когда-либо выходил из блока преждевременно, но я только что проверил это под VB2010, и он, кажется, работает очень хорошо (то есть, как я ожидал бы, другими словами ...

Если Var1 = 2, функция возвращает TRUE, а значение MyObject.Property1 равно «Test», но MyObject.Property2 не установлено.

Возможно, что это работало в тесте таким образом, нов реальном приложении значительного размера, с отключенной отладкой и т. д., и т. д., оно может работать по-другому, поэтому есть что рассмотреть ....

...