111,077
社区成员




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);