日期:2014-05-20 浏览次数:21122 次
    class MainForm : Form
    {
        Button btn = new Button();
        public MainForm()
        {
            btn.Click += btn_Click;
        }
        void btn_Click(object sender, EventArgs e)
        {
            Demo de = new Demo();
        }
    }
    class Demo
    {
        ~Demo()
        {
            MessageBox.Show("析构函数被调用");
        }
 }
    class MainForm : Form
    {
        Button btn1 = new Button();
        Button btn2 = new Button();
        public MainForm()
        {
            btn1.Click += btn1_Click;
            btn2.Click += btn2_Click;
            btn2.Top = 40;
            this.Controls.Add(btn1);
            this.Controls.Add(btn2);
        }
        void btn1_Click(object sender, EventArgs e)
        {
            Demo de1 = new Demo();
            de1 = null;
            Demo de2 = new Demo();
            new Demo();
            GC.Collect();
        }
        void btn2_Click(object sender, EventArgs e)
        {
            GC.Collect();
        }
    }
    class Demo
    {
        ~Demo()
        {
            MessageBox.Show("析构函数被调用");
        }
}
       void btn1_Click(object sender, EventArgs e)
        {
            Demo de1 = new Demo();
            Demo de2 = new Demo();
            GC.SuppressFinalize(de1);
            de1 = null;
            GC.Collect();
        }
        protected void Finalize()
        {
        }
Demo de = new Demo();
typeof(Demo).GetMethod("Finalize",BindingFlags.Instance|BindingFlags.NonPublic).Invoke(de, null);