コンストラクターですでにSuppressFinalizeを呼び出しているDataTableなどのクラスがいくつかあるため、dispose /useusingを呼び出す意味はありません。(disposeは以前にリリースするためのものですが、リリースするものがないため)
だから、私はそのようなクラスのリスト、またはリフレクションによってそのようなクラスのリストを見つける方法を知りたいですか?
コンストラクターですでにSuppressFinalizeを呼び出しているDataTableなどのクラスがいくつかあるため、dispose /useusingを呼び出す意味はありません。(disposeは以前にリリースするためのものですが、リリースするものがないため)
だから、私はそのようなクラスのリスト、またはリフレクションによってそのようなクラスのリストを見つける方法を知りたいですか?
あなたの質問は無効な仮定をしています。呼び出しSuppressFinalize
は の有用性には関係ありませんDispose
。Dispose メソッドは、明示的にまたはusing
ブロックを介して呼び出すと、そこに書かれていることは何でも実行します。
通常、Dispose は SupressFinalize を呼び出しますが、これは、典型的な Dispose パターンに従うと、Dispose がファイナライザーから実行されるコードを実行するためです。コードは既に実行されているため、比較的高価な操作であるファイナライズの必要はありません。そのため、Dispose は SupressFinalize を呼び出します。