Firstly,
thanks someone can help me answer this question, really in my heart~ thanks
currently I am learn something about Gc in c#, do some test
code there
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Person p = new Person();
            Person p1 = new Person();
            Person p2 = new Person();
            Person p3 = new Person();
            GC.Collect();
        }
    }
    public class Person
    {
        ~Person()
        {
            MessageBox.Show("destructor has call...");
        }
    }
}
scenario one
when I press button1 to new some object, then call Gc.Collect(); but nothing happen(I expect MessageBox will show 4 times)
when I press button2 secondly ,MessageBox show...(I am confused)
do some one can explain it? (thanks)
scenario two
code here
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Person p = new Person();
            Person p1 = new Person();
            Person p2 = new Person();
            Person p3 = new Person();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            GC.Collect();
        }
    }
    public class Person
    {
        ~Person()
        {
            MessageBox.Show("destructor has call...");
        }
    }
}
when I press button1 then press button2 the MessageBox show.....
