如果我想在 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 时,有没有类似的方法来缩小范围?这对内部作用域中定义的变量何时可能被垃圾收集有任何影响吗?
最佳答案
有趣的是,developerFusion c#-vb.net 代码转换器转换
{
myClass y = new myClass();
y.MyProperty = 2000;
Console.WriteLine("y = " + y.MyProperty);
}
到
If True Then
Dim y As New [myClass]()
y.MyProperty = 2000
Console.WriteLine("y = " & y.MyProperty)
End If
作为限制范围的一种方式。我很惊讶它会记住 paintballbob's answer
关于c# - 范围以及如何使用 VB.Net 缩小范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485621/