C#で管理されていないリソースをクリーンアップする方法[重複]
私はこのクラスを持っています:
public class A
{
//Some logic code here
}
私の質問は、スコープを出た後、このクラスに基づいて作成されたオブジェクトをどのように破棄または破棄できるかということです。
例えば:
A a = new A();
//some code here
オブジェクトを破棄または破棄して、割り当てられたメモリを解放し//some code here
たい後a
。
回答
1 ispiro
問題が何であるかは質問から明らかであるように思われるので、タイトルを無視して質問の本文に集中します。
簡単な答え:あなたはしません。これは、ガベージコレクターが必要と判断したときに自動的に処理されます。(ガベージコレクターを実行する必要はありません。これは自動的に行われます。)
次に、ガベージコレクターa
は、例のようにスコープ外になっているエンティティを探し、使用したスペースを解放します。次に、の内部a
も明らかにスコープ外になっていることがわかり(コードの他の場所で参照されている場合を除く)、それらを処理します。
そうは言っても、実装Dispose
するクラスの変数を使用する場合は、Dispose
明示的に呼び出すか、using
ブロックを使用してそれを実行するのが最善です。a
廃棄時に実行されるファイナライザーを実装することもできます。しかし、それはあなたが求めていたものではないようです。