コード検査: 未使用のパラメーター (非公開アクセシビリティ)
このインスペクションは、インターフェース、抽象、仮想メソッドで宣言されているが、メソッド自体またはそこから継承されたメソッドのいずれでも使用されていないパラメーターを報告します。
未使用のパラメーターが存在すると、他の開発者に誤解を与える可能性があります。また、パラメーターを使用する予定であったが、うっかり見落とされたというエラーを示している可能性があり、アプリケーションで予期しない動作やバグが発生する可能性があります。
以下の例では、ITestable
インターフェースのユーザーは、PrintString
メソッドの名前とシグネチャーが自明であるため、おそらくその実装をチェックしないでしょう。つまり、引数によって渡された文字列が出力されることを期待するでしょう。そのため、メソッドが定数文字列を出力できるという事実は、予期しない動作である可能性があります。
ソリューション全体のインスペクションを機能させるには、次の少なくとも 1 つを有効にする必要があります。
簡略化されたグローバル使用状況チェック: JetBrains Rider 設定 Ctrl+Alt+S のソリューション全体の分析がオフの場合に、未使用の非プライベートタイプメンバーを表示するを選択します。
ページでソリューション全体の分析 : JetBrains Rider 設定 Ctrl+Alt+S の ページでソリューション全体の分析を可能にするを選択します。
報告されたパラメーターがソリューション内で直接使用されていない場合でも、リフレクションなどによって間接的に使用される場合や、単にパブリック API として設計されている場合もあります。これらのすべてのケースでは、次のいずれかの方法で、パラメーターの使用状況チェックインスペクションを抑制する必要があります。
推奨される方法は、暗黙的に使用されるパラメーターをコードアノテーション属性で装飾することです。この目的には 2 つの属性があります。[UsedImplicitly] と [PublicAPI] です。これらは機能的には似ていますが、パラメーターが実際にどのように使用されるかをチームメートに理解させます。
また、カスタム属性を使用してインスペクションの使用状況を抑制することもできます。これを行うには、その属性の定義に [MeansImplicitUse] 属性を付けます。
そして最後に、特定の使用チェックインスペクションを、抑制コメントまたは抑制属性を持つ他のコードインスペクションと同様に抑制することができます。
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/code_analysis_target_framework.png)
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...
![](https://resources.jetbrains.com/help/img/rider/2024.1/swea_not_built.png)
ソリューション全体の分析
JetBrains Rider のソリューション全体の分析により、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:JetBrains Rider 自身のインスペクションによって検出されたコンパイラーのエラー / 警告とエラー / 警告の両方で、ソリューション内のすべてのエラー / 警告を常に追跡できます。この機能は設計時コードインスペクションと連携して 2 つの利点をもたらします。ソリューションにエラー / 警告が含まれていないことを確認するために、す...
![](https://pleiades.io/icons/rider.png)
アノテーションを使用してコードインスペクションを改善する
コード検査などの JetBrains Rider の多くの機能は、問題を検出し、改善を提案し、他の方法でお手伝いするために、言語構成の動作を知ることに大きく依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、JetBrains Rider のは非常に役立ちます。このフレームワークで宣言された...