コードインスペクション
ReSharper は、すべての対応言語で 2500 を超えるコードインスペクションを提供します。 これらのインスペクションは、開いているすべてのファイルでコードの問題を検出し デザインタイムにハイライトしたり、 特定のスコープで全コード問題を見つけたりします(スコープはソリューション全体に及ぶことがあります)。
ReSharper が提供するコードインスペクションの種類を確認するには、さまざまな言語の ReSharper コードインスペクションの全リストをご覧ください。
コードインスペクションは、以下のグループに分類できます。
ReSharper 独自のコードインスペクションには以下が含まれます:
インスペクションは固定 重大度 'Error' です。 これらのインスペクションはコンパイラーのエラーを検出し、無効化または設定する方法はありません。
設定可能な 重要度レベルを持つインスペクションは、他のコード問題(例:コンパイラー警告、実行時や論理エラー、コードの臭い、冗長性、改善提案など)を検出します。 これらの設定可能なインスペクションは、ReSharper オプション ページ Alt+R、O で確認できます。 これらのインスペクションは、 さまざまな方法で設定できます。コメントや属性を使って検出された問題を抑制したり、設定または .editorconfig ファイルで 無効化や重要度レベルの変更が可能です。
カスタムコードインスペクションは、 構造的検索および置換パターンとして定義され、構成可能な重大度レベルもあります。
コードインスペクションの重大度レベル
各 ReSharper コードインスペクションおよび 構造検索と置換パターンには、次のいずれかの重要度レベルがあります:
エラー
この重要度レベルのコードインスペクションは、コードのコンパイルを妨げたり、実行時エラーを引き起こす問題を対象としています。 これらのインスペクションのほとんどは設定できません。つまり、無効化や重要度レベルの変更はできません。
デザインタイムインスペクションでは、ReSharper は未解決シンボルを赤で表示します:
![]()
間違ったステートメントやその一部に赤い波線の下線をハイライトします。

現在のファイルに少なくとも 1 つのエラーがある場合、 ステータスインジケーターには エラー
アイコンが表示され、各エラーに赤いマーカーが マーカーバー上に表示されます。
「エラー」重要度レベルのインスペクションで発見されたコード問題は、 ソリューション全体の分析 が有効化されている場合、「Errors/Warnings in Solution」ウィンドウに表示されます。
警告
この重大度レベルは、コンパイラーの警告、コードのコンパイルを妨げないが、それでも深刻なコーディングの非効率性を表す可能性があるその他の問題に対応しています。 例えば、ReSharper は冗長な型キャストや名前空間インポートディレクティブ、誤ったフォーマット文字列、宣言されているが未使用のローカル変数やプライベートフィールド、未使用のプライベートメソッドなどについて通知します。
デザインタイムインスペクションでは、ReSharper は冗長なシンボルを灰色のテキストで表示します:

文またはその一部を青い波の下線でハイライト表示します。

現在のファイルに少なくとも 1 つの警告がある場合、ステータスインジケーターに 警告
アイコンが表示され、マーカーバー上に各警告の黄色のマーカーが表示されます。
警告付きの ソリューション全体の分析 が有効化されている場合、警告も「Errors/Warnings in Solution」ウィンドウに表示されます
提案
この重大度レベルのコードの問題は、コード構造のインサイトを提供し、必ずしも悪いことではないが間違っていることに注意を喚起しますが、おそらく知っておくと便利です。
デザインタイムインスペクションでは、ReSharper は提案箇所を緑色の波下線でハイライトします:

マーカーバー上に各警告の緑のマーカーが追加されます。
ヒント
これは最も低い重大度です。 この重大度のコードの問題は、特定のコードの詳細に注意を促し、改善方法を推奨します。
デザインタイムインスペクションでは、ReSharper は該当するシンボルの最初の 2 文字に点線の緑の下線を追加してヒントをハイライトします:

エラー、警告、提案とは異なり、 エディターでコード問題をナビゲートする際にヒントは考慮されず、マーカーバー にも表示されません。
ハイライトされたヒントの上にキャレットを置くと、ポップアップは表示されず、対応するメッセージがステータスバーにのみ表示されることに注意してください。
特定のスコープでコードをインスペクションする場合、ReSharper は検出された問題に対応するアイコンを追加し、インスペクション結果ウィンドウ 内で重要度レベルによるソートを可能にします。
コードインスペクションのカテゴリ
ReSharper は、設定可能なコードインスペクションを複数のカテゴリにグループ化します。 これらのカテゴリは、インスペクションの目的と、検出されるコードの問題の種類を大まかに定義します。 これらのカテゴリは、 ページ(ReSharper オプション Alt+R、O )でコードインスペクションをグループ化したり、特定のスコープで検出されインスペクション結果ウィンドウに表示されるコード問題をまとめるために使用されます。
- 潜在的なコード品質の問題
このカテゴリには、主に エラーまたは 警告レベルで、重大な問題(コードの臭い)を検出するインスペクションが含まれます。 このカテゴリには ローカライゼーション支援を保証するインスペクションも含まれます。
- 一般的なプラクティスとコードの改善
このカテゴリには、主にコードの可読性に影響する中程度の重要度の問題を検出するインスペクションがまとめられています。
- コードの冗長性
このカテゴリのコードインスペクションは、可読性やスタイルに影響する冗長部分やデッドコードを探し、これらは安全に削除できます。 一部のコード冗長性は自動的に修正できず、それらのクイックフィックスは対話モードで実行され、ユーザー入力が必要です。 ただし、冗長な部分のほとんどは スコープ内の修正 または コードのクリーンアップ を使うことでユーザー操作なしで修正できます。
- 言語の使用機会
このカテゴリには、主に 提案の重要度レベルのコードインスペクションが含まれており、より高度な言語構造が使用できる場合に通知されます。 これらのインスペクションは、古い言語バージョンの構文を検出し、より新しい言語バージョンの機能を使うことを提案します。 ほとんどのサポート対象言語では、言語バージョン は自動的に検出されるか手動で設定できます。
- コード通知
このカテゴリは、重要度レベルが軽微なコードインスペクションをまとめています。
- コードスタイル
このカテゴリのインスペクションは コード構文スタイル への違反を検出します。 ほとんどのコードインスペクションとは異なり、これらのインスペクションは、 ページの ReSharper オプション Alt+R、O に設定された対応するコードスタイルルールによって同じコード構造をコード問題として検出する場合も、しない場合もあります。 これらのインスペクションで検出された問題は、 コードのクリーンアップ を使用して修正することもできます。
- 制約違反
このカテゴリには、主に 警告重要度レベルで、シンボル属性に関連する違反(ReSharper のコードアノテーションを含む)や、その他の類似した問題を検出するコードインスペクションが含まれます。
- シンボル宣言の冗長性
このカテゴリには、主に 警告重要度レベルで、空や未使用のシンボル宣言を検出するコードインスペクションが含まれます。
- コンパイラーの警告
このカテゴリのインスペクションは、コンパイル前にコンパイラー警告を検出します。
- スペルの問題
これらのインスペクションは 様々なコンテキストでタイプミスを検出します。
- NUnit
これらのインスペクションは、NUnit テストに関連するコードの問題を検出します。
- Xunit
これらのインスペクションは、xUnit.Net テストに関連するコードの問題を検出します。
- フォーマット
このカテゴリのインスペクションは コードフォーマットの問題を検出します。
- Clang-Tidy チェック
このカテゴリのインスペクションは、 Clang-Tidy によって提供される強力なオープンソースのコード解析ツールで、ReSharper と 統合されています。
- Clang
このカテゴリのインスペクションは、Clang コンパイラー警告に該当し、ReSharper と 統合されています。
- Clang Static Analyzer のチェック
このカテゴリのインスペクションは、ReSharper と 統合された Clang 静的アナライザーからの診断です。
すべての静的アナライザーチェックはデフォルトで無効化されています。有効化すると Clang-Tidy の動作が著しく遅くなるためです。
- Unreal Engine
このカテゴリのインスペクションは、 Unreal Engine プロジェクトに特有です。
- Unreal ビルドシステム
このカテゴリのインスペクションは、 Unreal Engine プロジェクトに特有です。
- Unity
このカテゴリのインスペクションは、 Unity(英語) プロジェクトに固有のコードの問題を報告します。
- Unity Burst コンパイラー警告
このカテゴリのインスペクションは、コードが実際にコンパイルされる前に Unity バーストコンパイラー(英語)の警告を報告します。
- Unity パフォーマンスインスペクション
このカテゴリのインスペクションは、計算効率の悪いパターン Unity(英語) プロジェクトを報告します。
構成可能コードインスペクションの識別子
構成可能な各コードインスペクションには、構成に使用できる 2 つの固有の識別子があります。 例として 可能性のある 'System.NullReferenceException' インスペクションを考えてみましょう:
- インスペクション ID
コメントで単一の問題のインスペクションを 抑制するために使用します:
// ReSharper disable once PossibleNullReferenceExceptionコメントからファイルの末尾まで:
// ReSharper disable PossibleNullReferenceExceptionもしくは型やメソッドの属性で指定:
[SuppressMessage("ReSharper", "PossibleNullReferenceException")].
- インスペクション EditorConfig プロパティ
.editorconfig ファイルからインスペクションを 設定する際にも使用できます。 例えば、次の行でインスペクションの重要度レベルを Errorに変更できます:
resharper_possible_null_reference_exception_highlighting=error
コードインスペクションインデックス の中で各々の構成可能なインスペクションのための識別子を見つけることができます - ただ言語ページを選んで、それから望ましいインスペクションの詳細を見つけるためにブラウザー検索を使うこと。
構成可能なコードインスペクションのリスト
- C# のコードインスペクション
- VB.NET のコードインスペクション
- JavaScript のコードインスペクション
- TypeScript のコードインスペクション
- C++ のコードインスペクション
- XAML のコードインスペクション
- HTML のコードインスペクション
- CSS のコードインスペクション
- ASP.NET のコードインスペクション
- HttpHandler または WebService のコードインスペクション
- Razor のコードインスペクション
- 正規表現のコードインスペクション
- リソースファイルのコードインスペクション
- Web.config のコードインスペクション
- MSBuild のコードインスペクション
- NAnt のコードインスペクション
- XML のコードインスペクション
- ルートテンプレートにインスペクションをコーディングする
- Blazor のコードインスペクション