質問: 環境: * OS: windows10 * visual studio 2008 たとえば、C#で、親クラスは子クラスを複数生成し、子クラスでそれぞれ時間がかかる処理を実行するとします。 子クラスは、内部でスレッドを1個生成し、スレッド内で時間がかかる処理が完了した時点で 子クラス自身を破棄したいと思っています。 そこで質問なのですが、C++ だと delete this のように自身を破棄できそうですが、C# ではどのような実装が考えられるのでしょうか?そもそも、C#の場合は自分で破棄する必要はなく、しかるべきタイミングで使用されない子クラス(クラスインスタンス)はガベージされ破棄されるのでしょうか?
回答: C#では全てのオブジェクトインスタンスはGCで管理されています。GCは当該オブジェクトがどこからも参照されなくなった時点で自動的に解放します。 ですので、プログラム上は特に何も記述する必要はありません。