垃圾收集器和静态类,变量

Ami*_*oni 6 c# garbage-collection

自从过去几天以来,有一点在我心中疑惑.我想知道垃圾收集器如何使用静态类,变量?

众所周知,垃圾收集器会跟踪已在应用程序中创建的对象,并在不再使用时自动将其删除.对于静态类,不会创建任何对象,并使用应用程序调试将其加载到内存中.

那么垃圾收集器处理静态类?

Sti*_*gar 10

静态类不需要被删除,因为它们不是对象,并且它们不消耗内存(除了.NET基础结构加载的实际类代码之外).另一方面,静态类中的静态字段是消耗内存的对象.它们不会被收集,因为它们可以在应用程序的整个生命周期内访问.如果要释放内存,则应将该字段设置为null,以便该字段指向的对象符合GC的条件

  • 有一个例外:在.Net 4中,您可以拥有可收集的程序集.如果程序集被垃圾收集,则此程序集中类型的静态字段将停止为GC根,因此可以收集它们引用的对象. (3认同)