2014-01-17 45 views
-3
public class CleanClass : IDisposable 
{ 
    public void Dispose() 
    { 
     GC.SuppressFinalize(this); 
    } 
    protected override void Finalize() 
    { 
     **Dispose();** 
    } 
} 
+1

此实现IDisposable'是不正确的根据如何实现接口文档的':http://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110)。 aspx –

+0

文档不清楚吗? –

+0

@PraveenSinghBaghel你是否正在重写'finalizer'来处理非托管资源? –

回答

1

Dispose方法是使用以除去unmanagement资源,如数据库连接,文件句柄等

2

它被用来释放unmanaged资源,如文件,数据库connectionsetc。随时。

您需要明确地调用Dispose对实现IDisposable的任何对象。如果使用using()代码构造,则编译器将在using块的末尾自动调用Dispose。

UPDATE 请仔细阅读本文,我可以提供一个较短的版本,但我认为您应该阅读以更好地理解系统资源管理。

Dispose Pattern

2

的Dispose()

此方法永久删除任何资源((未)管理的)从存储器 清理和资源不再存在任何进一步的处理。

Dispose Method
1

Dispose方法是,Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources。有关详细detials:Dispose Method

0

的Dispose()方法被用来消除的对象的状态。你可以通过here找到更多的信息。

相关问题