假设包含以下属性的'MyModel'类:ASP.NET垃圾回收:是否引用静态类属性危险?
public List ListOfAlbumsTitles => AlbumsHelper.ListOfAlbumsTitles;
AlbumsHelper
是一个静态类。这是否意味着,由于引用静态类属性,MyModel的对象不会被自动收集?
假设包含以下属性的'MyModel'类:ASP.NET垃圾回收:是否引用静态类属性危险?
public List ListOfAlbumsTitles => AlbumsHelper.ListOfAlbumsTitles;
AlbumsHelper
是一个静态类。这是否意味着,由于引用静态类属性,MyModel的对象不会被自动收集?
不,MyModel
的实例将被处置罚款。什么MyModel
商店是一个恰好在其他地方正在使用的东西(即在AlbumsHelper
)的参考。
引用是垃圾收集的单向方式。因此,只要Bar
存在,从Foo
到Bar
的引用将使Foo
保持有效。反过来意味着什么都没有。
你已经得到了相反的结果。
只要没有参考到那个对象就可以收集任何对象。传出参考对物体寿命没有影响。
试想一下,如果不是这样,会发生什么 - 垃圾收集器永远无法收集任何东西,也没有null
退房手续所有它的其他对象的引用。这不是很有用。
不,逻辑是另一种方式,如果AlbumsHelper不是一个静态类,这个任务将阻止它被收集。但是因为这个类是静态的,所以这并不重要。
是的,这是非常明显的。 thx的详细答案! – 52hertz