今日、私はファイルで操作を実行したかったので、このコードを思いつきました
class Test1
{
Test1()
{
using (var fileStream = new FileStream("c:\\test.txt", FileMode.Open))
{
//just use this filestream in a using Statement and release it after use.
}
}
}
しかし、コード レビューで、IDisposable インターフェイスと Finalizer メソッドの実装を求められました。
class Test : IDisposable
{
Test()
{
//using some un managed resources like files or database connections.
}
~Test()
{
//since .NET garbage collector, does not call Dispose method, i call in Finalize method since .net garbage collector calls this
}
public void Dispose()
{
//release my files or database connections
}
}
しかし、私の質問は、なぜ私がしなければならないのですか?
私の方法論を正当化することはできませんが、usingステートメント自体がリソースを解放できる場合にIDisposableを使用する必要があるのはなぜですか)
何か特定の利点がありますか、それとも何か不足していますか?