Close()与Dispose()的区别
2010-04-26 09:23
218 查看
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()只是关闭一些连接或少量资源,实例还是存在的
C#中析构函数是有垃圾搜集器来调用的,当所引用的堆上的数据当无效时,会隐式调用。一般表现为当引用变量超出其作用域时就会调用。
Close函数和Dispose函数则是一种约定。调用Close函数释放资源后可能还需要再次使用,而Dispose函数释放的资源不再使用。
另外,如果类实现了IDisposable接口,实例化类时可以使用using关键字,则当超出using关键字作用域时会隐式调用Dispose函数,如:
using(CTest inst = new CTest())
{
//Do Something;
} //Call Dispose Method Here
this.dispose()已经释放了实例占用的资源
this.close()只是关闭一些连接或少量资源,实例还是存在的
相关文章推荐
- C#中窗体的close,dispose,以及application.exit()的区别
- C#中Dispose和Close的区别
- C#中窗体的close,dispose,以及application.exit()的区别
- SqlConnection中 Close()Dispose()Using()的区别
- Close与Dispose的区别
- 深入解析Close()和Dispose()的区别
- Finalize(析构函数)、Dispose、Close 的区别与使用
- C#中close和dispose的区别
- 深入解析Close()和Dispose()的区别!
- C#中Dispose和Close的区别!
- ado中dispose和close的区别,摘自网络
- Java窗口关闭设置DISPOSE_ON_CLOSE和EXIT_ON_CLOSE 的区别
- C#中Dispose和Close的区别
- asp.net sqlconnection con.close和con.dispose区别
- 深入解析Close()和Dispose()的区别
- C#中Dispose和Close的区别
- Environment.Exit(0) 、Application.Exit() 、this.Close() 、this.Dispose()的区别
- C#中Dispose和Close的区别
- .Net中Dispose()和Close()的区别
- asp.net sqlconnection con.close和con.dispose区别