你的位置:首页 > ASP.net教程

[ASP.net教程]释放资源的一般范式——更锋利的C#代码小记


public class Photo : IDisposable{//在Finalize函数中调用内部的Dispose方法 ~Photo()  {   //被自动回收时仅释放托管资源,不释放非托管资源   Dispose(false);  }  //提供了自命名的释放资源方法  public void Close()  {  //当显式回收时则释放所有资源   Dispose(true);  }  #region IDisposable接口显式实现    //显式实现IDisposable接口,避免同时出现Dispose方法和自定义命名方法(Close)    public void IDisposable.Dispose()    {      //释放所有资源      Dispose(true);      //避免重复调用Finalize函数      GC.SuppressFinalize(this);    }  #endregion     //内部的Dispose方法,真正实施资源释放工作    protected virtual void Dispose(bool disposing)    {      if(disposing==true)      {        //释放托管资源      }      //释放非托管资源    }}