在C#中,您可以在未附加到任何其他语句的方法内部创建一个块。
public void TestMethod()
{
{
string x = "test";
string y = x;
{
int z = 42;
int zz = z;
}
}
}
该代码将编译并运行,就像main方法中的花括号不存在一样。还要注意块内的块。
是否存在一种有值(value)的方案?我还没有找到任何东西,但很好奇听到其他人的发现。
最佳答案
范围和垃圾回收:当您离开未附加的块时,其中声明的任何变量都将超出范围。这样垃圾收集器就可以清理那些对象。
Ray Hayes指出.NET垃圾收集器不会立即收集范围外的对象,因此作用域确定是主要的好处。
关于c# - C#中的匿名未附加块的值是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/85282/