6

ローカル変数のスコープを制限するために VB.Net で任意のブロックを作成するより良い方法はありますか? 「If 1 Then」を試してみましたが、見た目が悪いだけです。

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

手順の後半でアクセスtableしたくないだけです。new_row

4

2 に答える 2

4

table と new_row が機能する別のプロシージャがあるように、プロシージャをリファクタリングします。後で表示する必要が本当にない場合は、とにかくリファクタリングする必要がある別個のサブタスクを実行しています。

一般的に言えば、コードを N 個のセグメントに分割でき、各セグメントが他のセグメントに依存しない場合、N 個のタスク、できれば N 個のプロシージャを検討していることになります。

これは、すべてのプロシージャが 1 つのことを実行する必要があるというルールに戻ります。複数のセグメントは、複数のことを実行していることを示しています。

于 2012-12-06T17:13:56.070 に答える
3

Option Strict On場合、それは である必要がありますIf True Thenが、より好ましいオプション (私が見た限り) はDo ... Loop While Falseです。

Begin ... Endしかし、いいえ、単純な(または)のような構文はありません{ ...}

で作業できIDisposable、ブロックの最後に配置すると、Using newVariable = AnIDisposable説明している内容に最も近いものが得られますが、私が言ったように、最後に配置されます。

于 2012-12-09T01:17:34.027 に答える