15/08/23 22:37:24.13 JbH8lT1Q.net
>>639
仰るとおり、C++→C#へのポーティングではC#のデストラクタには期待できないから、
いちいち手動で順番も考慮してDispose()しかなさそうだ。
ただこれはだいぶ手間だから、何らかの上手い解決策が既にありそうだけどね。
仕様から言って、C#ではデストラクタの起動順を期待するコーディングをしてはいけない。
ただ、
> フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね (635)
これはよく分からない。(これが発生する可能性がシステム的にあることは分かる)
とはいえ、C#って多重継承できないし、アンマネージドとマネージドを混ぜてぐちゃぐちゃにしたりすることがなければ、
これって無いよね?
(逆に言えば、マネージドコードだけならこういったことは発生しない、と思っている。
そして本来はアンマネージドを大量に使うことこそが問題。ポーティングならある程度致し方ないにしても。)