DebugLZQ 发表于 2012-10-24 01:02:57

一个近乎完美的Finalize配合Dispose的设计模板

  在.NET中,由于有了垃圾回收机制的支持,对象的析构和以前C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Finalize方法来保证一个对象正确而高效地被析构。
  我们知道,在.NET环境中,托管的资源都将由.NET的垃圾回收机制来释放,而一些非托管资源则需要程序员手动地进行将他们释放。.NET提供了主动和被动两种释放非托管资源的方式,即IDisposable接口的Dispose方法和类型自己的Finalize方法。
  1.using的实现原理

  在C#中,using语句提供了一个高效的调用对象Dispose方法的方式。对于任何IDispose接口的类型,都可以使用using语句,而对于那些没有实现IDisposable接口的类型,使用using语句会导致一个编译错误。
  先来看下using语句的基本语法:
using (MemoryStream ms=new MemoryStream()){   //...}
页: [1]
查看完整版本: 一个近乎完美的Finalize配合Dispose的设计模板