2

在下面的代码块中,如果 VB.NET 是否优雅地退出 With 块Var1 = 2

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

Return False

我记得这是 VB6 中的一个问题,并导致无法预测的行为令人头疼 - VB.NET 也是如此吗?

4

2 回答 2

0

不得不在这里添加另一个答案,因为我主要是好奇。从来没有用过 WITH 太多,我不记得过早退出该块,但我只是在 VB2010 下测试过它,它似乎工作得很好(即,正如我所期望的那样,换句话说......

如果 Var1 =2,则函数返回 TRUE,并且 MyObject.Property1 的值为“Test”,但尚未设置 MyObject.Property2。

它可能在测试中以这种方式工作,但在一个规模很大的实际应用程序中,在关闭调试等情况下,它可能会以不同的方式工作,所以,有一点需要考虑......

于 2011-03-10T20:08:45.857 回答