ReSharper 2025.1 ヘルプ

ソリューション全体のコードインスペクション

ReSharper のコードインスペクションのほとんどは、コードの問題を検出するために 1 つのファイルのソースコードのみを必要とします。これらのインスペクションに加えて、ReSharper は、ソリューション全体のスコープでのみ検出可能なコードの問題に対して、ソリューション全体のインスペクションを提供します。

ソリューション全体のインスペクションを機能させるには、次の少なくとも 1 つを有効にする必要があります。

  • 簡略化されたグローバル使用状況チェック: ReSharper オプション Alt+R, Oコードインスペクション | 設定ページでソリューション全体の分析がオフの場合に、未使用の非プライベートタイプメンバーを表示するを選択します。

  • ソリューション全体の分析 : ReSharper オプション Alt+R, Oコードインスペクション | 設定ページでソリューション全体の分析を可能にするを選択します。

報告されたシンボルがソリューション内で直接使用されていない場合でも、リフレクションなどによって間接的に使用されている場合や、パブリック API として設計されている場合もあります。これらのすべてのケースでは、次のいずれかの方法で、シンボルの使用状況チェックインスペクションを抑制する必要があります。

  • 推奨される方法は、暗黙的に使用されるシンボルをコードアノテーション属性で装飾することです。この目的には 2 つの属性があります。[UsedImplicitly][PublicAPI] です。これらは機能的には似ていますが、シンボルが実際にどのように使用されているかをチームメートに理解させます。

  • また、カスタム属性を使用してインスペクションの使用状況を抑制することもできます。これを行うには、その属性の定義に [MeansImplicitUse] 属性を付けます。

  • そして最後に、特定の使用チェックインスペクションを、抑制コメントまたは抑制属性を持つ他のコードインスペクションと同様に抑制することができます。

他のインスペクションと同様に、ソリューション全体のインスペクションの重大度レベル無効にしたり変更したりすることもできます。これは、インスペクションがハイライトするコードの問題の Alt+Enter メニューから直接実行できます。または、ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページでインスペクションの重大度レベルを無効 / 有効にしたり変更したりすることもできます。ソリューション全体のインスペクションには非公開アクセシビリティラベルが付いています。ソリューション全体のインスペクションに「エラー」重大度を設定することはできないことに注意してください。

ソリューション全体の分析が有効になっている場合、ソリューション全体のインスペクションによって検出された問題は、他の問題と同じように開いているファイルでハイライトされ、特定のスコープでコードインスペクションを実行すると、インスペクション結果ウィンドウにも表示されます。ただし、ソリューションのエラー / 警告ウィンドウには表示されません。

必要に応じて、ソリューション全体のインスペクションを無効にするか、特定のプロジェクトの内部シンボルでソリューション全体のインスペクションのみを有効にすることができます。これを行うには、プロジェクトアイテムのプロパティポップアップのソリューション全体のインスペクションセレクターを使用します。これは、ソリューションエクスプローラーのプロジェクトのコンテキストメニューからプロジェクト項目のプロパティを編集するを選択することで呼び出すことができます。

このセレクターの値とは関係なく、ReSharper オプションでソリューション全体の分析が無効になっている場合、ソリューション全体のインスペクションは無効になることに注意してください。

ReSharper は、以下のソリューション全体のインスペクションを提供します。

インスペクション

言語

デフォルトの重大度

自動プロパティは取得専用にすることができます (非公開アクセシビリティ)

C#

提案

クラスを密閉することができます (non-inheritable) (非公開アクセシビリティ)

C#

無効

ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ)

C#

ヒント

フィールドは読み取り専用にすることができます (非公開アクセシビリティ)

C#

提案

メンバーはプライベートにすることができます (非公開アクセシビリティ)

C#

提案

メンバーを保護することができます (非公開アクセシビリティ)

C#

提案

メンバーは静的にすることができます (共有) (非公開アクセシビリティ)

C#

ヒント

パラメーターの型は IEnumerable <T> (非公開アクセシビリティ)

C#

無効

プロパティは init のみにすることができます (非公開アクセシビリティ)

C#

提案

戻り値の型は IEnumerable <T> (非公開アクセシビリティ)

C#

無効

構造体に 'IEquatable' 実装がありません (非公開アクセシビリティ)

C#

警告

デフォルトの等価メンバーを持つ構造体は比較に使用されます (非公開アクセシビリティ)

C#

警告

レコード内で疑わしい等価性を持つ型が使用されています (非公開アクセシビリティ)

C#

警告

オプションのパラメーターを導入する (非公開アクセシビリティ)

C#

提案

抽象または仮想(オーバーライド可能な)イベントが呼び出されることはありません

C#

提案

自動プロパティアクセサーは決して使用されません (非公開アクセシビリティ)

C#

警告

クラスはインスタンス化されません (非公開アクセシビリティ)

C#

提案

コレクションの内容が照会されることはありません (非公開アクセシビリティ)

C#

警告

コレクションは更新されません (非公開アクセシビリティ)

C#

警告

イベントは決して購読されない (非公開アクセシビリティ)

C#

提案

アクセスされていないフィールド (非公開アクセシビリティ)

C#

提案

アクセスされていない位置プロパティ (非公開アクセシビリティ)

C#

警告

疑わしい型変換またはチェック

C#

警告

割り当てられていないフィールド (非公開アクセシビリティ)

C#

提案

冗長グローバル使用ディレクティブ

C#

警告

継承されない仮想(オーバーライド可能な)メンバーを持つクラス (非公開アクセシビリティ)

C#

提案

エンティティはその名前を取得するためにのみ使用されます (非公開アクセシビリティ)

C#

警告

メソッドの戻り値は使用されません (非公開アクセシビリティ)

C#

提案

パラメーターは前提条件チェックにのみ使用されます (非公開アクセシビリティ)

C#

提案

パラメーター出力値は常に破棄されます (非公開アクセシビリティ)

C#

提案

冗長メソッドオーバーロード (非公開アクセシビリティ)

C#

提案

タイプは使用されません (非公開アクセシビリティ)

C#

提案

型メンバーは基本型でアクセスされません (非公開アクセシビリティ)

C#

提案

型メンバーは使用されません (非公開アクセシビリティ)

C#

提案

型メンバーは上書きでのみ使用されます (非公開アクセシビリティ)

C#

提案

未使用のパラメーター (非公開アクセシビリティ)

C#

提案

仮想(オーバーライド可能な)メンバーはオーバーライドされません (非公開アクセシビリティ)

C#

提案

自動プロパティは取得専用にすることができます (非公開アクセシビリティ)

VB.NET

提案

クラスを密閉することができます (non-inheritable) (非公開アクセシビリティ)

VB.NET

無効

ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ)

VB.NET

ヒント

フィールドは読み取り専用にすることができます (非公開アクセシビリティ)

VB.NET

提案

メンバーはプライベートにすることができます (非公開アクセシビリティ)

VB.NET

提案

メンバーを保護することができます (非公開アクセシビリティ)

VB.NET

提案

メンバーは静的にすることができます (共有) (非公開アクセシビリティ)

VB.NET

ヒント

パラメーターの型は IEnumerable <T> (非公開アクセシビリティ)

VB.NET

無効

プロパティは init のみにすることができます (非公開アクセシビリティ)

VB.NET

提案

戻り値の型は IEnumerable <T> (非公開アクセシビリティ)

VB.NET

無効

構造体に 'IEquatable' 実装がありません (非公開アクセシビリティ)

VB.NET

警告

デフォルトの等価メンバーを持つ構造体は比較に使用されます (非公開アクセシビリティ)

VB.NET

警告

レコード内で疑わしい等価性を持つ型が使用されています (非公開アクセシビリティ)

VB.NET

警告

抽象または仮想(オーバーライド可能な)イベントが呼び出されることはありません

VB.NET

提案

自動プロパティアクセサーは決して使用されません (非公開アクセシビリティ)

VB.NET

警告

クラスはインスタンス化されません (非公開アクセシビリティ)

VB.NET

提案

コレクションの内容が照会されることはありません (非公開アクセシビリティ)

VB.NET

警告

コレクションは更新されません (非公開アクセシビリティ)

VB.NET

警告

イベントは決して購読されない (非公開アクセシビリティ)

VB.NET

提案

アクセスされていないフィールド (非公開アクセシビリティ)

VB.NET

提案

アクセスされていない位置プロパティ (非公開アクセシビリティ)

VB.NET

警告

疑わしい型変換またはチェック

VB.NET

警告

割り当てられていないフィールド (非公開アクセシビリティ)

VB.NET

提案

継承されない仮想(オーバーライド可能な)メンバーを持つクラス (非公開アクセシビリティ)

VB.NET

提案

エンティティはその名前を取得するためにのみ使用されます (非公開アクセシビリティ)

VB.NET

警告

メソッドの戻り値は使用されません (非公開アクセシビリティ)

VB.NET

提案

パラメーターは前提条件チェックにのみ使用されます (非公開アクセシビリティ)

VB.NET

提案

パラメーター出力値は常に破棄されます (非公開アクセシビリティ)

VB.NET

提案

タイプは使用されません (非公開アクセシビリティ)

VB.NET

提案

型メンバーは基本型でアクセスされません (非公開アクセシビリティ)

VB.NET

提案

型メンバーは使用されません (非公開アクセシビリティ)

VB.NET

提案

型メンバーは上書きでのみ使用されます (非公開アクセシビリティ)

VB.NET

提案

未使用のパラメーター (非公開アクセシビリティ)

VB.NET

提案

仮想(オーバーライド可能な)メンバーはオーバーライドされません (非公開アクセシビリティ)

VB.NET

提案

タイプは使用されません (非公開アクセシビリティ)

JavaScript

提案

型メンバーは使用されません (非公開アクセシビリティ)

JavaScript

提案

アクセスされていないフィールド (非公開アクセシビリティ)

ASP.NET

提案

型メンバーは使用されません (非公開アクセシビリティ)

ASP.NET

提案

メンバーはプライベートにすることができます (非公開アクセシビリティ)

XAML

提案

メンバーを保護することができます (非公開アクセシビリティ)

XAML

提案

アクセスされていないフィールド (非公開アクセシビリティ)

XAML

提案

タイプは使用されません (非公開アクセシビリティ)

XAML

提案

型メンバーは使用されません (非公開アクセシビリティ)

XAML

提案

アクセスされていないフィールド (非公開アクセシビリティ)

HttpHandler または WebService

提案

型メンバーは使用されません (非公開アクセシビリティ)

HttpHandler または WebService

提案

関連ページ:

コードインスペクション

ReSharper は、サポートされているすべての言語で 2500 を超えるコードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出してハイライトするために適用されます。また、特定の範囲内のすべてのコードの問題を検出するために適用されます。インスペクション ReSharper が提供するコードの種類を調べるには、異なる言語の ReSharper コードインスペクションの全リストをご覧ください。コードインスペクションは、以下のグループに分...

ソリューション全体の分析

ソリューション全体の分析により、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語 C++ を除くでエラーが検出されます。プロジェクトにそのようなファイル (JavaScript、CSS、HTML など) が含まれている場合、ソリューション全体の分析は、実行時にしか検出できないエラーを見つけるのに役立ちます。ReSharper のソリューション全体の分析では、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:ReSharper 自...

コードインスペクション設定を構成する

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

設計時にコードの問題を分析する

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...

特定の範囲でコードの問題を見つける

設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。開始コードインスペクション:ソリューション、プロジェクト、カスタムスコープのコードをインスペクションするソリューションワイドのインスペクションの結果(たとえば、未使用のパブ...

コード検査: コレクションの内容が照会されることはありません (非公開アクセシビリティ)

ReSharper はあなたのコードで作成されたコレクションへのアクセスを分析し、コレクションが更新されてもその内容がソリューション全体で使用されていない場合は警告します。すべての標準コレクションタイプは、デフォルトでこの方法で分析されます。必要に応じて、この分析をから派生したカスタムコレクションに適用することもできます。この場合、ReSharper に、コレクションの public メソッドの呼び出しがコレクションのコンテンツにどのように影響するかを伝える必要があります。そのためには、コレクシ...