コードインスペクション:未使用のパラメーター(非公開アクセシビリティ)
このインスペクションは、インターフェース、抽象、仮想メソッドで宣言されているが、メソッド自体またはそこから継承されたメソッドのいずれでも使用されていないパラメーターを報告します。
未使用のパラメーターが存在すると、他の開発者に誤解を与える可能性があります。 また、パラメーターを使用する予定であったが、うっかり見落とされたというエラーを示している可能性があり、アプリケーションで予期しない動作やバグが発生する可能性があります。
以下の例では、 ITestable インターフェースの利用者は、 PrintString メソッドの実装を確認しない可能性が高いです。メソッド名とシグネチャーが自明に見えるため、引数で渡された文字列を出力すると予想します。 つまり、メソッドが定数文字列を出力する可能性があるという事実は、予期しない動作かもしれません。
ソリューション全体のインスペクションを機能させるには、次の少なくとも 1 つを有効にする必要があります。
簡略化されたグローバル使用状況チェック: ReSharper オプション の ページで ソリューション全体の分析がオフの場合に、未使用の非プライベートタイプメンバーを表示する を選択します Alt+R、O 。
ソリューション全体の分析: ReSharper オプション の ページで ソリューション全体の分析を有効化する を選択します Alt+R、O 。
報告されたパラメーターがソリューション内で直接使用されていない場合でも、リフレクションなどによって間接的に使用される場合や、単にパブリック API として設計されている場合もあります。 これらのすべてのケースでは、次のいずれかの方法で、パラメーターの使用状況チェックインスペクションを 抑制する必要があります。
推奨される方法は、暗黙的に使用されているパラメーターに コードアノテーション属性を付与することです。 この目的には、 [UsedImplicitly] 属性と [PublicAPI] 属性があり、どちらも機能は似ていますが、パラメーターが実際にどのように使われているかをチームメイトと一緒に理解できます。
また、カスタム属性を使用してインスペクションの使用状況を抑制することもできます。 これを行うには、その属性の定義に [MeansImplicitUse] 属性を付けます。
そして最後に、特定の使用チェックインスペクションを、 抑制コメントまたは抑制属性を持つ他のコードインスペクションと同様に抑制することができます。