ReSharper 2020.2ヘルプ

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

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#ヒント
戻り値の型は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ヒント
戻り値の型は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提案
最終更新日: 2020年5月08日

関連ページ:

コード・インスペクション

ReSharperはサポートされているすべての言語で2500以上のインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルで設計時にコードの課題を検出して強調表示するため、および/または特定の範囲内ですべてのコードの課題を見つけるために使用されます。インスペクション Re...

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

ソリューション全体の分析では、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語でエラーが検出されます。プロジェクトにこのようなファイル(JavaScript、CSS、HTMLなど)が含まれている場合、ソリューション全体の分析は、それ以外の場合は実行時にのみ検出される可能性...

注釈を使用してコードインスペクションを調整する

コード検査や他の多くのReSharperの機能は、課題を検出し、改善を提案し、他の方法であなたを手助けするために、言語構成の動作を知ることに主に依存しています。しかし、この種の分析ではすべてを検出することはできません。例:メソッドがを返さないように設計されており、そのクライアントがそれに応じて設計さ...

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

コード注釈を使用して、ReSharperがコードをインスペクションする方法をカスタマイズすることもできます。設計時コードインスペクションを構成する:デフォルトでは、ReSharperは、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効に...

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

ReSharperは、エディターでコード・ファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの課題は、重大度に従ってエディターで強調表示されます。課題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、...

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

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