コード検査: 'using' ステートメントによってすでにキャプチャーされた変数の破棄
IDisposable
を実装する型の変数が using
ステートメントまたは using
宣言で宣言されている場合、この変数に対して Dispose()
を呼び出さないでください。Dispose()
は、対応するブロックが終了すると、それに含まれるオブジェクトに対して自動的に呼び出されます。Dispose()
を手動で呼び出すと、実質的にこのメソッドを 2 回呼び出すことになり、予期しない動作やエラーが発生する可能性があります。
このインスペクションは、using
コンテキストでの Dispose()
の呼び出しだけでなく、リソースの破棄を処理するカスタムメソッドも報告します。このようなメソッドには、JetBrains.Annotations から [HandlesResourceDisposalAttribute] のマークを付ける必要があります。
関連ページ:

コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

アノテーションを使用してコードインスペクションを改善する
コード検査や他の多くの ReSharper の機能は、問題を検出し、改善を提案し、他の方法であなたを手助けするために、言語構成の動作を知ることに主に依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、ReSharper のは非常に役立ちます。このフレームワークで宣言された属性を使用することに...