CA2004: GC.KeepAlive への呼び出しを削除します
Item | [値] |
---|---|
規則 ID | CA2004 |
カテゴリ | Microsoft.Reliability |
互換性に影響する変更点 | なし |
原因
クラスでは SafeHandle
を使用しますが、引き続き GC.KeepAlive
の呼び出しが含まれています。
規則の説明
SafeHandle
の使用に変換する場合、GC.KeepAlive
(オブジェクト) の呼び出しをすべて削除します。 この場合、クラスではファイナライザーがなくても、SafeHandle
に依存して OS ハンドルを完了すると仮定すると、GC.KeepAlive
を呼び出す必要はありません。 GC.KeepAlive
を呼び出したままにしておいてもパフォーマンス面での損失はごくわずかかもしれませんが、もう存在していない可能性がある有効期間の問題の解決に GC.KeepAlive
の呼び出しが必要であるか呼び出しで十分であると認識することで、コードの保守が困難になります。
違反の修正方法
GC.KeepAlive
の呼び出しを削除します。
どのようなときに警告を抑制するか
この警告を抑制できるのは、クラスで SafeHandle
の使用への変換が技術的に正しくない場合のみです。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示