c# - C# 中匿名未附加 block 的值是什么?

标签 c#

在 C# 中,您可以在不附加到任何其他语句的方法内部创建一个 block 。

    public void TestMethod()
    {
        {
            string x = "test";
            string y = x;

            {
                int z = 42;
                int zz = z;
            }
        }
    }

这段代码编译和运行就像 main 方法中的大括号不存在一样。还要注意 block 内的 block 。

是否存在这会有值(value)的场景?我还没有找到任何东西,但很想听听其他人的发现。

最佳答案

范围和垃圾收集:当您离开未附加的 block 时,其中声明的任何变量都会超出范围。这让垃圾收集器可以清理这些对象。

Ray Hayes指出 .NET 垃圾收集器不会立即收集范围外的对象,因此范围界定是主要好处。

关于c# - C# 中匿名未附加 block 的值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/85282/

相关文章:

c# - 来自整数的模型绑定(bind) TimeSpan

c# - 无法通过 C# 代码在我们的一台服务器上运行 PowerShell 脚本

c# - 使用准备好的语句和占位符的 MySQL 插入命令不起作用

c# - WinRT 上的 StreamSocket 不接收所有数据

c# - EF :6 - How to skip insertion of value if value has default value set in DB?

c# - 我可以将 Microsoft Graph SDK 与 Azure AD Easy Auth 结合使用吗

c# - 关闭程序后重新启动应用程序

c# - String.Split 返回奇怪的结果

c# - OData 返回 'Cannot find the services container for route ' odata-Unversioned'

c# - 使用 ASP.Net,如何为静态内容启用浏览器缓存并为动态内容禁用它?