基本的に私は次のようになり、いくつかの機能があります:私はすべての機能に代わりに別のもの[インスタンス]の同じリソースを使用することができます仮定の下すべての関数でステートメントを使用する - >適切なクリーンアップでクラスフィールドに変換する?
class MyClass
{
void foo()
{
using (SomeHelper helper = CreateHelper())
{
// Do some stuff with the helper
}
}
void bar()
{
using (SomeHelper helper = CreateHelper())
{
// Do some stuff with the helper
}
}
}
はそれがクリーンアップに関してでOKの練習で、このようにする?:
class MyClass
{
SomeHelper helper = CreateHelper();
// ...foo and bar that now just use the class helper....
~MyClass()
{
helper.Dispose();
}
}
代わりのあなたの代わりにファイナライザを使用した可能性が(可能であれば) 'MyClass'で' IDisposable'を実装し、コールを廃棄するときは、 'helper.Dispose' –