静态方法

时间:2009-05-19 07:24:04

标签: .net garbage-collection

  

可能重复:
  Garbage collection of static members

垃圾收集器是否会清除静态方法和静态类

6 个答案:

答案 0 :(得分:6)

不清理方法和类。对象是。

如果您有一个对象的静态引用,一旦静态超出范围(即卸载AppDomain时),将清除相关对象。

答案 1 :(得分:1)

重复:Garbage collection of static members

我还可以提一下,当收集OBJECT时。不会收集方法和类。

public class TestClass
{
   public static Hashtable h_object = new Hashtable();
}

TestClass.h_object = null; 
//* here it has no more references and it will be added to GC.

答案 2 :(得分:0)

据我所知,收集AppDomain时会发生这种情况(即应用程序关闭时)。

答案 3 :(得分:0)

如果您要引用静态字段,那么不需要。根据定义,它们一直保留到流程结束(或AppDomain)。

如果您在静态方法中引用由代码分配的局部变量,则GC将整理分配的堆内存

答案 4 :(得分:0)

static意味着只有一个这种类型的对象。最好的例子是主要方法。它只存在一次。所以垃圾收集也会收集这些对象,但不会自动收集到程序中,只是在最后。

除了那个LukasŠalkauskas用“some_object”说的话。“some_other_obj”= null;

答案 5 :(得分:-1)

没有。在关闭应用程序域之前,不会删除静态类。