Close()与Dispose()的区别

来源:互联网 发布:淘宝卖家设置宝贝分类 编辑:程序博客网 时间:2024/05/12 10:44

C#中析构函数,Close函数,Dispose函数的区别  
   
   
   
  C#中析构函数是有垃圾搜集器来调用的,当所引用的堆上的数据当无效时,会隐式调用。一般表现为当引用变量超出其作用域时就会调用。  
   
  Close函数和Dispose函数则是一种约定。调用Close函数释放资源后可能还需要再次使用,而Dispose函数释放的资源不再使用。  
   
  另外,如果类实现了IDisposable接口,实例化类时可以使用using关键字,则当超出using关键字作用域时会隐式调用Dispose函数,如:  
   
  using(CTest   inst   =   new   CTest())  
   
  {  
   
          //Do   Something;  
   
  }     //Call   Dispose   Method   Here  

 

this.dispose()已经释放了实例占用的资源  
  this.close()只是关闭一些连接或少量资源,实例还是存在的