[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
291(3): (スップ Sd73-2DeC) 2022/03/22(火)21:41 ID:1zUmccnld(2/3) AAS
>>287
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
295: (ワッチョイ 8bcf-noGs) 2022/03/22(火)21:53 ID:0A7XAa2y0(2/2) AAS
>>291
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
297: (テテンテンテン MMeb-NT4g) 2022/03/22(火)22:39 ID:Ky9cYioTM(2/5) AAS
そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ
>>273が
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
299: (テテンテンテン MMeb-NT4g) 2022/03/22(火)22:56 ID:Ky9cYioTM(4/5) AAS
ごめん嘘書いた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.048s