VB.NETには、Cタイプ言語の{}のようなスコープネスト演算子がありますか?
C ++タイプコードの例:
int i;
i = 0;
{
int i;
i++;
}
空の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
、ループステートメントを使用するよりも優れている場合があります。
いいえ、VB.Netにはそのような包括的スコープ修飾子はありません。次のような空のループを使用して、それらをシミュレートできます。
Loop
...
Until False
ただし、同じ名前の変数を再定義することはできません。VB.Net(およびC#)では、ネストされたスコープで変数を外部スコープの変数と同じ名前で定義することは違法です。