让'MyModel'类包含以下属性:
public List ListOfAlbumsTitles => AlbumsHelper.ListOfAlbumsTitles;
AlbumsHelper
是一个静态类。这是否意味着,由于引用静态类属性,MyModel的对象不会被自动收集?
答案 0 :(得分:2)
不,MyModel
的实例将被罚款。 MyModel
商店是对其他地方(即AlbumsHelper
)正在使用的内容的引用。
引用是涉及垃圾收集的单向方式。因此,只要Foo
存在,Bar
到Foo
的引用就会使Bar
保持活跃状态。反过来说没有任何意义。
答案 1 :(得分:1)
你已经反过来了。
只要没有对该对象的引用,就可以收集任何对象。传出引用与对象生存期无关。
想象一下如果不是这样的情况会发生什么 - 垃圾收集器永远不会收集任何没有null
的东西 - 它对其他对象的所有引用。这不是很有用。
答案 2 :(得分:1)
不,逻辑是另一种方式,如果AlbumsHelper不是静态类,这个赋值将阻止它被收集。但是因为这个类是静态的并不重要。