Form1 == null 就是说窗体不会被使用了,那么系统的垃圾回收器会进行FORM1的销毁工作,隐式调用;而后者是显式调用;

解决方案 »

  1.   

    获取一个值,该值指示控件是否已经被处置。[Visual Basic]
    Public ReadOnly Property IsDisposed As Boolean[C#]
    public bool IsDisposed {get;}[C++]
    public: __property bool get_IsDisposed();[JScript]
    public function get IsDisposed() : Boolean;属性值
    如果控件已经被处置,则为 true;否则为 false。备注
    当该属性返回 true 时,控件被处置,不再能作为有效的 Windows 控件引用。尽管控件的实例已被处置,但是,它仍保留在内存中,直到通过“垃圾回收”将其从内存中移除为止。控件被处置后,无法调用其 RecreateHandle 方法。
    null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。
      

  2.   

    null表示当前对象指向空引用(不指向托管堆),而Dispose()是通知GC回收当前托管堆中的托管资源,同时释放非托管资源。
      

  3.   

    Dispose()后不一定为null,而null后肯定就已是Disposed,当 对象=null 后就不能再做 对象.Dispose()
      

  4.   

    Dispose()后不是null,还在内存中等待GC回收,此时要用IsDisposed =true来判断