引用类型赋值为null与加速垃圾回收

  在标准的Dispose模式中,提到了需要及时释放资源,却并没有进一步细说让引用等于null是否有必要。

  有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾。其他人则认为这没有任何帮助。是否赋值为null的问题首先在方法的内部被人提起。现在,为了更好的阐述提出的问题,我们来撰写一个Winform窗体应用程序。如下:

        private void button1_Click(object sender, EventArgs e)
{
Method1();
Method2();
}

private void button2_Click(object sender, EventArgs e)
{
GC.Collect();
}

private void Method1()
{
SimpleClass s
= new SimpleClass("method1");
s
= null;
//其它无关工作代码(这条注释源于回应回复的朋友的质疑)
}
private void Method2()
{
SimpleClass s
= new SimpleClass("method2");
}
}

class SimpleClass
{
string m_text;

public SimpleClass(string text)
{
m_text
= text;
}

~SimpleClass()
{
MessageBox.Show(
string.Format("SimpleClass Disposed, tag:{0}", m_text));
}
}

NET技术引用类型赋值为null与加速垃圾回收,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。