非推奨の API を報告および更新する
API を進化させるときは、遅かれ早かれ重大な変更を導入する必要があります。これに対処する従来の方法は、非推奨のタイプとメンバーを [Obsolete] 属性でマークし、属性のメッセージを使用して新しい API に移行する方法を説明することです。
ReSharper は、API ユーザーが古い API を見つけて自動的に新しい API に変換できる、より洗練されたソリューションを提供します。API の作成者として、廃止された型またはメンバーを JetBrains.Annotations の [CodeTemplate] 属性でマークする必要があります。ここで、古い API と一致する検索パターンとその置換パターンを指定できます。この属性は、構造検索と置換パターンと同様に機能し、対応するクイックフィックスおよびスコープ内の修正を含むカスタムコードインスペクションとして機能します。
[CodeTemplateAttribute] は、C# コードを解析する他のすべての JetBrains 製品 (たとえば、JetBrains Rider JetBrains Fleet および InspectCode コマンドラインツール ) によって認識されます。
例を使用して、それがどのように機能するかを見てみましょう。
非推奨の IsTrue() メソッドに [CodeTemplate] 属性でアノテーションを付けましょう。
これで、ReSharper は MyAssert.IsTrue() のすべての使用箇所を報告し、移行の修正を提案します。
![ReSharper: [CodeTemplate] 属性を使用して、非推奨の API の移行修正を提案する ReSharper: Using [CodeTemplate] attribute to suggest migration fixes for deprecated APIs](https://resources.jetbrains.com/help/img/dotnet/2026.1/CodeTemplateAttribute_example.png)
関連ページ:
アノテーションを使用してコードインスペクションを改善する
コード検査や他の多くの ReSharper の機能は、問題を検出し、改善を提案し、他の方法であなたを手助けするために、言語構成の動作を知ることに主に依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、ReSharper のは非常に役立ちます。このフレームワークで宣言された属性を使用することに...
構造検索と置換
場合によっては、正規表現に一致する特定のシンボルやテキストの出現を検索するなどの標準的な検索方法では、目的の結果が得られない場合があります。例: プロジェクトに固有のコードの匂いを見つけたり、リファクタリングする必要があるコードを見つける必要があるかもしれません。ReSharper を使用すると、特定のパターンに一致するコードブロックを検索し、必要に応じて置き換えることができます。これらのブロックはまったく異なる場合があります。異なるタイプ、式、ステートメントなどを含むことができますが、論理的に...
スコープを修正
クイックフィックスのほとんどは、キャレットの現在の問題を修正できますが、一部 (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など) は、現在のファイル、プロジェクト、フォルダー、ソリューション全体など、より広い範囲で問題を自動的に検出して修正することもできます。範囲内の修正を適用する:このような修正は、アクションリストの横に小さな矢印が表示されることで認識できます。範囲内の修正を適用する ReSharper のインスペクションでハイライトされて...
InspectCode コマンドラインツール
ReSharper の最も注目すべき機能の 1 つであるコードインスペクションは、IDE を開かなくても使用できます。無料のクロスプラットフォームコマンドラインツールの InspectCode では、ReSharper のインスペクションのすべてを適用するために、少なくとも 1 つのパラメーター (ソリューションファイル) が必要です。InspectCode を実行する ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用して、オペレーティングシ...
コンパイラーの警告を設定する
ReSharper には、最も顕著なコンパイラー警告を報告するコードインスペクションと、それに対応するクイックフィックスが含まれています。ReSharper コードインスペクションの結果がコンパイラー出力や他のツール、アナライザーと一致するようにするため、コンパイラー警告の重大度レベルは、ReSharper 独自のインスペクションとは異なり、エディターや ReSharper オプションから設定することはできません。代わりに、コンパイラーの警告を抑制する他の方法があり、以下にまとめます。.edito...