局部变量的块范围

时间:2012-12-06 17:09:54

标签: vb.net scope

有没有更好的方法在VB.Net中创建任意块来限制局部变量的范围?如果尝试了“如果1然后”,但它只是看起来像kludgy。

If 1 Then
    Dim table = InputParameter1
    Dim new_row = table.AddRow
    new_row.field(1) = InputParameter3.user_value
End If

我只是希望稍后在此过程中访问tablenew_row

2 个答案:

答案 0 :(得分:4)

重新考虑你的程序,以便在table和new_row做其他事情的另一个程序。如果你真的不需要它们以后可见,那么他们正在做一个应该重构的独特子任务。

一般来说,当您可以将代码划分为N个段时,每个段都不依赖于其他段,那么您正在查看N个任务,最好是N个过程。

这可以追溯到任何程序都应该做一件事的规则,而且多个细分是一个标志,表明它不止一件事。

答案 1 :(得分:3)

使用Option Strict On,必须是If True Then,但更优先的选项(据我所知)是Do ... Loop While False

但是,没有像简单Begin ... End(或{ ...})这样的语法。

如果您可以使用IDisposable,并将其放置在块的末尾,Using newVariable = AnIDisposable会给您最接近您所描述的内容,但就像我说的那样,它会被处理掉最后。