加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – using子句中的隐式变量是否会被垃圾收集?

发布时间:2020-12-16 00:16:07 所属栏目:百科 来源:网络整理
导读:在下面的代码中,底层代码是否包含对Foo类型的未命名变量实例的硬引用,或者是易受垃圾回收影响的项目? using(new Foo()){ // Something done here.} 收集的项目只是一个信号量类型对象,它对资源执行一些引用计数,因此它不会在代码块中引用. 解决方法 using子
在下面的代码中,底层代码是否包含对Foo类型的未命名变量实例的硬引用,或者是易受垃圾回收影响的项目?

using(new Foo())
{
    // Something done here.
}

收集的项目只是一个信号量类型对象,它对资源执行一些引用计数,因此它不会在代码块中引用.

解决方法

using子句创建一个隐藏本地范围的变量来保存对象(此变量由生成的finally子句使用).

此变量可防止对象被GC’d.

你可以see this variable in the spec.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读