3

VB.NETには、Cタイプ言語の{}のようなスコープネスト演算子がありますか?

C ++タイプコードの例:


int i;
i = 0;
{
  int i;
  i++;
}

4

2 に答える 2

7

空のWithブロックを使用できます:

With Nothing

    Dim x = 1

    Console.WriteLine("X = " + x.ToString())

End With

' ERROR! x is out of scope at this point. '
Console.WriteLine(x)

は構文糖衣にすぎないためWith、ループステートメントを使用するよりも優れている場合があります。

于 2009-02-27T15:36:34.380 に答える
5

いいえ、VB.Netにはそのような包括的スコープ修飾子はありません。次のような空のループを使用して、それらをシミュレートできます。

Loop
  ...
Until False

ただし、同じ名前の変数を再定義することはできません。VB.Net(およびC#)では、ネストされたスコープで変数を外部スコープの変数と同じ名前で定義することは違法です。

于 2009-02-27T15:29:52.963 に答える