【问题标题】:Exiting from a VB.NET With block从 VB.NET With 块中退出
【发布时间】:2011-03-10 09:28:37
【问题描述】:

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

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

Return False

我记得这是 VB6 中的一个问题,并因不可预测的行为而令人头疼 - VB.NET 也是如此吗?

【问题讨论】:

  • 哇,真奇怪。尽管我一直在 VB.NET 中进行编程,但我从未经历过这种行为。我想我从不使用With 语句是有充分理由的......

标签: vb.net with-statement


【解决方案1】:
【解决方案2】:

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

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

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

【讨论】:

  • 是的,我的阅读方式是从With 语句中转移控制在技术上不受支持。这并不意味着它不起作用:代码无论如何都会返回,因为您在其中抛出了 return 语句。但这并不意味着一切都得到了很好的清理,并且没有潜在的错误行为需要考虑。这是编程中你必须考虑“它是否编译”之外的事情之一。在做出设计决定时。
猜你喜欢
  • 2014-08-13
  • 2012-06-27
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多