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

.net – 共享变量和垃圾收集

发布时间:2020-12-17 00:08:04 所属栏目:大数据 来源:网络整理
导读:我一直在读.NET中的垃圾收集,我希望得到一些澄清.所以,据我所知,如果我声明一个公共共享类变量,GC将永远不会摆脱它.它是否正确? 那么,私有变量呢?请看以下示例: public class myClass private shared myString As String public sub ChangeString(newStri
我一直在读.NET中的垃圾收集,我希望得到一些澄清.所以,据我所知,如果我声明一个公共共享类变量,GC将永远不会摆脱它.它是否正确?

那么,私有变量呢?请看以下示例:

public class myClass
    private shared myString As String

    public sub ChangeString(newString As String)
        myString = newString
    end sub
end class

如果没有类的实例,共享变量现在会得到GC吗?如果我将ChangeString改为共享子怎么办?

So,as I understand it if I declare a public shared class variable,the GC will never get rid of it. Is this correct?

几乎. GC不会清除共享变量引用的字符串.

但是,如果使用新字符串调用ChangeString,则myString指向的字符串将不再受此引用的影响,并且可能符合GC的条件.但是,新字符串(由newString引用)现在将由myString变量生根,从而防止它被垃圾回收.

Would the shared variable now get GCed if there were no instances of the class?

不.共享变量是对象的根,因为它由类的“类型”拥有,而不是任何实例.

And what if I alter ChangeString to be a shared sub?

这根本没有效果.

(编辑:李大同)

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

    推荐文章
      热点阅读