- C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
668 :デフォルトの名無しさん[sage]:2015/08/24(月) 00:31:00.45 ID:e5Jihg5N - IDisposeを持つオブジェクトを握るオブジェクトはIDisposeを持つしかない
不用意でなくても普通に増えるしかないよ IDisposeを持つ物は Stream や Task があるがどれも基本的なクラスばかりで避けては通れない
|
- C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
671 :デフォルトの名無しさん[sage]:2015/08/24(月) 00:42:37.88 ID:e5Jihg5N - C#の場合デストラクタでやっていいことは、static関数の呼び出しくらいだろうな
class型フィールドの内容に触ることはできない、触ってよいのは int や enum といった値のフィールドだけ それ以外の操作をしたければDisposeを使うしかない 順序良く呼び出されたとしてもこれでは何もできない
|
- C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
673 :デフォルトの名無しさん[sage]:2015/08/24(月) 01:04:15.56 ID:e5Jihg5N - C++からのポーティングが引き返せないところまで来ているのかもw
笑っちゃいけないか、ご愁傷様かな(ナムナム
|
- C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
680 :デフォルトの名無しさん[sage]:2015/08/24(月) 12:27:15.22 ID:e5Jihg5N - 一番低レベルなヤツ -> 679
|
- C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
696 :デフォルトの名無しさん[sage]:2015/08/24(月) 23:57:38.17 ID:e5Jihg5N - ファイナライザに実装すべきなのは、安全装置だけだろう
例えばアンマネージドのハンドルを握っている場合 ハンドルはIntPtrだから、別のクラスに入れるといったことをせず直接フィールドに配置しているなら アクセス可能だから、ここでリ参照カウンタをダウンすれば一応解放は可能 fopenみたいなものを相互運用している場合もハンドルとstatic関数をdllから呼び出せるなら バッファのフラッシュは諦めるとしてもファイルを閉じることくらいはできる いずれも最終手段レベルだね
|