| 复制代码        private static Form2 instance;
        public static Form2 Instance
        {
            get
            {
                if (instance == null || instance.IsDisposed)
                {
                    instance = new Form2();
                }
                return instance;
            }
        }
instance是一个静态的字段,它是在访问后就一直存在内存中。复制代码        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = Form2.Instance;
            f.Show();
        }
你的按钮单击后,对静态字段赋值了(一个Form2窗体实例),该字段的指向的Form2窗体对象的地址给变量f一份,f调用了show方法。当窗体f被关闭(instance指向的那个对象在内存中被销毁。)
 当再次点击按钮,调用instance指向的对象,对象已经被销毁了而你没判断对象是否被释放了,此时就会报错。
 |