.net – 共享变量和垃圾收集
我一直在读.NET中的垃圾收集,我希望得到一些澄清.所以,据我所知,如果我声明一个公共共享类变量,GC将永远不会摆脱它.它是否正确?
那么,私有变量呢?请看以下示例: public class myClass private shared myString As String public sub ChangeString(newString As String) myString = newString end sub end class 如果没有类的实例,共享变量现在会得到GC吗?如果我将ChangeString改为共享子怎么办?
几乎. GC不会清除共享变量引用的字符串. 但是,如果使用新字符串调用ChangeString,则myString指向的字符串将不再受此引用的影响,并且可能符合GC的条件.但是,新字符串(由newString引用)现在将由myString变量生根,从而防止它被垃圾回收.
不.共享变量是对象的根,因为它由类的“类型”拥有,而不是任何实例.
这根本没有效果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |