15/08/24 00:35:53.34 4CFfNfbx.net
>>662
さすがにそのケースでのリークはないよね?
Array等の中身として参照を持っているだけなら、
そもそもデストラクタがどちらから呼ばれても問題ない。
継承関係なら自動でやってくれるはず。
自作クラスで継承以外で引っ張ってきている場合、必要ならデストラクタにその順通り書けばよく、
デストラクタがいつ呼ばれるかは問題ではない。
(自作クラスの一つのデストラクタだけで済むように構成する。
ただしリソース解放が必要ならDisposeを実装しないとタイミングが読めない。)
菱形継承で先に基底クラスが解放されたりするのは問題になるけど、C#にこれはない。
だから問題になるのは、一度しか呼ばれないアンマネージド側で
マネージドのデストラクタが呼び出し済みなのを期待している時で、多分これだけだよね?
マネージド側は放置しててもなんだかんだでいつかはGCされるはず。
それが嫌ならDisposeしろって事で。
だから、アンマネージドを先に全部解放するようにすれば、問題は発生しないと見た。