gpt4 book ai didi

VB.Net 对象超出范围?

转载 作者:行者123 更新时间:2023-12-01 09:28:27 27 4
gpt4 key购买 nike

这是对去年提出的一个问题的扩展。

Public Class RandomClassManager
Private mCol As Collection

Private Sub Foo()
Dim ob as New MyRandomClass
Add(ob)
End Sub

Public Sub Add(ByRef mc As MyRandomClass)
mCol.Add(mc)
End Sub
End Class

一旦 Foo 退出,我可以相信 mCol 中仍然有 MyRandomClass 对象吗?或者我是否面临垃圾收集器删除这些对象的风险?

最佳答案

是的,您可以相信新创建的 MyRandomClass 对象仍在 mCol 中。一旦列表对该对象具有强引用,垃圾收集器就不会销毁它。或者至少只要某些东西仍然引用 mCol,也就是说...垃圾收集器不会销毁任何被任何其他对象强引用的对象。

就其值(value)而言,如果您确实想让垃圾收集器销毁对象,即使它们仍在列表中,您可以将它们包装在 WeakReference 中。对象。

关于VB.Net 对象超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com