【发布时间】:2009-09-28 06:02:16
【问题描述】:
如果我想在 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 时,有没有类似的方法来缩小范围?这对内部作用域中定义的变量何时可能被垃圾回收有任何影响吗?
【问题讨论】: