ReSharper 2020.3 ヘルプ

ソリューションワイドコードインスペクション

ReSharper のコードインスペクションのほとんどは、コードの問題を検出するために単一ファイルのソースコードのみを必要とします。これらのインスペクションに加えて、ReSharper は、ソリューション全体の範囲でのみ検出可能なコードの問題に対して、ソリューション全体のインスペクションを提供します。たとえば、未使用の非プライベートメンバー ReSharper がソリューション全体を分析するために必要なものを検出する場合などです。

ソリューション全体のインスペクションを機能させるには、次のいずれかまたは両方が必要です。

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

  • ソリューション全体の分析が有効になっています: ReSharper オプションのコードインスペクション | 設定ページでソリューション全体の分析を可能にするAlt+R, O)。

シンボルがソリューションで直接使用されておらず、ReSharper がそれについて警告している場合でも、シンボルが間接的に(たとえばリフレクションを介して)使用されたり、単にパブリック 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# ヒント
オプションのパラメーターを導入する (非公開アクセシビリティ)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 ヒント
抽象または仮想(オーバーライド可能な)イベントが呼び出されることはありません 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 コードインスペクションの全リストをご覧ください。エディターでハイライ...

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

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

コードインスペクション設定の構成

コードアノテーションを使用して、ReSharper がコードをインスペクションする方法をカスタマイズすることもできます。設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押し...

設計時にコードの問題を検出する

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。また、JSLint、ESLint、TSLint から Javascript/ Typescript コードの検証と修正をエディターで使用することも...

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

設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。Visual Studio および ReSharper を起動せずに、コマンドラインから特定のスコープ内のコードをインスペクションすることもできます。開始コードインスペクショ...

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

このインスペクションを抑制して、特定の課題を無視したり、重大度を変更して課題を目立たなくしたり、完全に無効にしたりできます。これはソリューション全体のコードインスペクションです。ソリューション全体の分析が有効な場合のみ動作します。ReSharper は、コードで作成されたコレクションへのアクセスを分