Welcome

首页 / 软件开发 / .NET编程技术 / .NET中IDisposable接口的基本使用

.NET中IDisposable接口的基本使用2011-12-17 cnblogs carysun首先来看MSDN中关于这个接口的说明:

[ComVisible(true)]public interface IDisposable{  // Methods  void Dispose();}
1.[ComVisible(true)]:指示该托管类型对 COM 是可见的.

2.此接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾回收器会自动释放分配给该对 象的内存。但无法预测进行垃圾回收的时间。另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资 源一无所知。将此接口的Dispose方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象时 ,对象的使用者可以调用此方法。

一:基本应用

1.我们来定义一个实现了IDisposable接口的类,代码如下:

public class CaryClass :IDisposable{  public void DoSomething()  {    Console.WriteLine("Do some thing....");  }  public void Dispose()  {    Console.WriteLine("及时释放资源");  }}
2.我们有两种方式来调用:

2.1.第一种方式,使用Using语句会自动调用Dispose方法,代码如下:

 using (CaryClass caryClass = new CaryClass()) {   caryClass.DoSomething(); }
2.2第二种方式,现实调用该接口的Dispose方法,代码如下:

 CaryClass caryClass = new CaryClass();  try  {    caryClass.DoSomething();         }  finally  {    IDisposable disposable = caryClass as IDisposable;    if (disposable != null) disposable.Dispose();  }
两种方式的执行结果是一样的,如下图: