C# で変数のスコープを狭めたい場合は、追加の中かっこを導入できます。つまり、次のようになります。
class Program
{
static void Main(string[] args)
{
myClass x = new myClass();
x.MyProperty = 1000;
Console.WriteLine("x = " + x.MyProperty);
{
myClass y = new myClass();
y.MyProperty = 2000;
Console.WriteLine("y = " + y.MyProperty);
}
myClass y2 = new myClass();
y2.MyProperty = 3000;
Console.WriteLine("y2 = " + y2.MyProperty);
}
class myClass
{
public int MyProperty { get; set; }
}
}
IDE では、新しい波括弧によって導入されたスコープ外で y を参照できなくなりました。これは、変数 y がガベージ コレクションに使用できることを意味すると考えていたでしょう。
(興味深いことに、リフレクターを使用してコンパイルされたコードを表示すると、中括弧を追加してもしなくても違いがないように見えます)
VB.net を使用する場合、これに似た範囲を狭める方法はありますか? これは、内部スコープで定義された変数がいつガベージ コレクションされる可能性があるかに影響しますか?