当前位置:  开发笔记 > 编程语言 > 正文

静态实例,析构函数从不调用

如何解决《静态实例,析构函数从不调用》经验,为你挑选了1个好方法。

请参阅下面的代码.析构函数永远不会被调用.任何人都知道为什么以及如何纠正这个问题?

public partial class Form1 : Form
{
    private Goo goo;

    public Form1()
    {
        InitializeComponent();

        goo = Goo.GetInstance();         
    }
}

public class Goo
{
    private foo f = new foo();
    private static Goo goo;
    private Goo()
    {}

    public static Goo GetInstance()
    {
        if(goo!=null)
        {
            goo = new Goo();
        }
        return goo;
    }

    ~Goo()
    {

    }
}

class foo
{
    ~foo()
    {

    }
}

Marc Gravell.. 8

除非您清除(设置为null)字段,否则静态字段引用的对象不会简单地完成- 即使这样,它也是非确定性的并且无法保证.静态字段计为根对象.

什么时候(以及为什么)你会期望收集/最终确定这个?它仍然可以访问......



1> Marc Gravell..:

除非您清除(设置为null)字段,否则静态字段引用的对象不会简单地完成- 即使这样,它也是非确定性的并且无法保证.静态字段计为根对象.

什么时候(以及为什么)你会期望收集/最终确定这个?它仍然可以访问......

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有