经过很多Idisposable的文章后,我对它的用法感到困惑 . 所有文章都解释了它是什么以及如何实现 . 我想知道如果我们不知道我们将会错过什么_127342_ s举一个例子通常使用dispose显示为处理 database connection.
代码就像
Public class Test:Idisposable
{
public Test()
{
DatabaseConnection databaseConnection = new DatabaseConnection();
}
public void Dispose()
{
if (this.databaseConnection != null)
{
this.databaseConnection.Dispose();
this.databaseConnection = null;
}
}
}
尽管配置已实现但是在dispose方法中,databaseconnection的dispose属性用于释放连接(this.databaseConnection.Dispose();)
我的问题是 why do we need to implement IDisposable in this case? 我们可以直接调用this.databaseConnection.Dispose()并释放连接 . 为什么在内部实现dispose也调用对象的dispose属性 . 作为Idisposable方法的替代方案,我们可以实现一个方法 Release 来释放内存 .
Public Class Test
{
public Test()
{
DatabaseConnection databaseConnection = new DatabaseConnection();
}
public void Release()
{
if (this.databaseConnection != null)
{
this.databaseConnection.Dispose();
this.databaseConnection = null;
}
}
}
这两种方法有什么不同?我们真的需要Idisposable吗?我期待着一个具体的解释 .