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()只是关闭一些连接或少量资源,实例还是存在的