[過去ログ]
GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
GCは失敗。メモリは自分で管理せよ! その2©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1447856699/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
30: デフォルトの名無しさん [sage] 2015/11/22(日) 17:32:48.70 ID:vggKhYqJ 前スレでも書いたけど、C#のDisposeの問題を紹介しよう IDisposableなオブジェクトをコンポジションしてメンバに持つと自身もIDisposableにしなければならない だから自分がコンポジションしているオブジェクトがIDisposableかどうか一々調べなければならないし IDisposableなオブジェクトがメンバにあれば、自身もIDisposableにしなければならない さらに、その作ったクラスをコンポジションして使うクラスもIDisposableにする必要があり・・・ という風にIDisposableはクラスで閉じずコンポジションで伝染する というか、むしろ手動で伝染させなければならないという しかもIDisposableの一連のイディオムはとても長くて煩雑 http://ufcpp.net/study/csharp/rm_disposable.html こういうものを書いて、マネッジドリソースとアンマネッジドリソースで場合わけをしつつ IDisposableなオブジェクトに関しては 手動で自分のメンバのDisposeを漏れなく呼び出すコードを書かなければならない 当たり前だが、どのメンバがIDisposableか完全に把握しておく必要が有る 手動で自分のメンバのDisposeを呼び出す作業は、まるでCのmallocを思い起こさせる 問題点は明確で、DisposeがC++のデストラクタのように芋づる式に勝手に呼ばれない事に有る だから手動で芋づる式に呼び出すコードを書かなくてはならない http://mevius.5ch.net/test/read.cgi/tech/1447856699/30
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 690 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s