第一个问题
    Finalize() 是C #相当于C++的析构函数,由.NET的垃圾收集器调用。由于程序不可以预见它什么时候被调用,所以需要及时释放的资源(一般来说是除了内存以外的资源,象数据库的连接等等)不可以在这个里面释放。
   Dispose()一般用来提醒程序员,这个对象有需要及时释放的资源,当对象没有用的时候要调用这个函数。一般在Finalize() 
   Close()

解决方案 »

  1.   

    第一个问题
        Finalize() 是C #的析构函数,相当于C++的析构函数,但它是被.NET的垃圾收集器调用,而不是由delete 调用。所以程序不可以预见它什么时候被调用,一般需要及时释放的资源(一般来说是除了内存以外的资源,象数据库的连接等等)不可以在这个里面释放。
       Dispose()用来释放需要及时释放的资源,当对象没有用的时候要调用这个函数。一般在Finalize() 中也会调用这个函数,以确保某些行为不当的程序员不调用的时候,这个函数一定被调用。
       Close()也是用来关闭资源的,但它一般关闭的是可以再次用Open函数打开的资源。Dispose()被调用后,一般认为这个对象已经被释放,不可以再引用了。