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

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

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

現在のファイルに少なくとも 1 つの警告がある場合、ステータスインジケーターに 警告
アイコンが表示され、マーカーバー上に各警告の黄色のマーカーが表示されます。
警告付きの ソリューション全体の分析 が有効化されている場合、警告も「Errors/Warnings in Solution」ウィンドウに表示されます
提案
Code issues with this severity level provide insights into code structure, drawing your attention to things that are not necessarily bad or wrong, but probably useful to know.
デザインタイムインスペクションでは、ReSharper は提案箇所を緑色の波下線でハイライトします:

マーカーバー上に各警告の緑のマーカーが追加されます。
ヒント
これは最も低い重大度です。 Code issues with this severity bring your attention to a particular code detail or recommends a way of improvement.
デザインタイムインスペクションでは、ReSharper は該当するシンボルの最初の 2 文字に点線の緑の下線を追加してヒントをハイライトします:

エラー、警告、提案とは異なり、 エディターでコード問題をナビゲートする際にヒントは考慮されず、マーカーバー にも表示されません。
ハイライトされたヒントの上にキャレットを置くと、ポップアップは表示されず、対応するメッセージがステータスバーにのみ表示されることに注意してください。
特定のスコープでコードをインスペクションする場合、ReSharper は検出された問題に対応するアイコンを追加し、インスペクション結果ウィンドウ 内で重要度レベルによるソートを可能にします。
コードインスペクションのカテゴリ
ReSharper は、設定可能なコードインスペクションを複数のカテゴリにグループ化します。 これらのカテゴリは、インスペクションの目的と、検出されるコードの問題の種類を大まかに定義します。 これらのカテゴリは、 ページ(ReSharper オプション Alt+R、O )でコードインスペクションをグループ化したり、特定のスコープで検出されインスペクション結果ウィンドウに表示されるコード問題をまとめるために使用されます。
- 潜在的なコード品質の問題
このカテゴリには、主に エラーまたは 警告レベルで、重大な問題(コードの臭い)を検出するインスペクションが含まれます。 このカテゴリには ローカライゼーション支援を保証するインスペクションも含まれます。
- 一般的なプラクティスとコードの改善
このカテゴリには、主にコードの可読性に影響する中程度の重要度の問題を検出するインスペクションがまとめられています。
- コードの冗長性
このカテゴリのコードインスペクションは、可読性やスタイルに影響する冗長部分やデッドコードを探し、これらは安全に削除できます。 一部のコード冗長性は自動的に修正できず、それらのクイックフィックスは対話モードで実行され、ユーザー入力が必要です。 ただし、冗長な部分のほとんどは スコープ内の修正 または コードのクリーンアップ を使うことでユーザー操作なしで修正できます。
- 言語の使用機会
このカテゴリには、主に 提案の重要度レベルのコードインスペクションが含まれており、より高度な言語構造が使用できる場合に通知されます。 これらのインスペクションは、古い言語バージョンの構文を検出し、より新しい言語バージョンの機能を使うことを提案します。 ほとんどのサポート対象言語では、言語バージョン は自動的に検出されるか手動で設定できます。
- コード通知
このカテゴリは、重要度レベルが軽微なコードインスペクションをまとめています。
- コードスタイル
このカテゴリのインスペクションは コード構文スタイル への違反を検出します。 ほとんどのコードインスペクションとは異なり、これらのインスペクションは、 ページの ReSharper オプション Alt+R、O に設定された対応するコードスタイルルールによって同じコード構造をコード問題として検出する場合も、しない場合もあります。 これらのインスペクションで検出された問題は、 コードのクリーンアップ を使用して修正することもできます。
- 制約違反
このカテゴリには、主に 警告重要度レベルで、シンボル属性に関連する違反(ReSharper のコードアノテーションを含む)や、その他の類似した問題を検出するコードインスペクションが含まれます。
- シンボル宣言の冗長性
このカテゴリには、主に 警告重要度レベルで、空や未使用のシンボル宣言を検出するコードインスペクションが含まれます。
- コンパイラーの警告
このカテゴリのインスペクションは、コンパイル前にコンパイラー警告を検出します。
- スペルの問題
これらのインスペクションは 様々なコンテキストでタイプミスを検出します。
- NUnit
これらのインスペクションは、NUnit テストに関連するコードの問題を検出します。
- Xunit
These inspections detect code issues related to xUnit tests.
- フォーマット
このカテゴリのインスペクションは コードフォーマットの問題を検出します。
- 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 つの固有の識別子があります。 Let us take the Possible 'System.NullReferenceException' inspection as an example:
- インスペクション 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 のコードインスペクション