在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/

10-09 22:18