CA1801: 使用されていないパラメーターを再確認します

TypeName

ReviewUnusedParameters

CheckId

CA1801

カテゴリ

Microsoft.Usage

互換性に影響する変更点

なし – 変更の内容にかかわらず、メンバーがアセンブリの外部で参照できない場合

なし - メンバーを変更して、メンバーの本体内でパラメーターを使用する場合

あり - パラメーターを削除し、そのパラメーターがアセンブリの外部で参照できる場合

原因

メソッドのシグネチャに、メソッドの本体で使用されていないパラメーターがあります。 この規則では、以下のメソッドはチェックされません。

  • デリゲートによって参照されるメソッド。

  • イベント ハンドラーとして使用されるメソッド。

  • abstract (Visual Basic では MustOverride) 修飾子付きで宣言されるメソッド。

  • virtual (Visual Basic では Overridable) 修飾子付きで宣言されるメソッド。

  • override (Visual Basic では Overrides) 修飾子付きで宣言されるメソッド。

  • extern (Visual Basic では Declare ステートメント) 修飾子付きで宣言されるメソッド。

規則の説明

アクセス エラー関連の処理が不正確にならないように、メソッドの本体で使用されていない非仮想メソッドのパラメーターを再確認します。 使用されていないパラメーターがあると、保守とパフォーマンスのコストがかかります。

この規則違反によって、メソッドの実装バグがわかることもあります。 たとえば、そのパラメーターをメソッドの本体で使用する必要があった場合などです。 下位互換性のためにそのパラメーターが必要な場合、この規則による警告を抑制します。

違反の修正方法

この規則違反を修正するには、使用されていないパラメーターを削除するか (互換性に影響のある変更)、メソッド本体でパラメーターを使用します (互換性に影響のない変更)。

警告を抑制する状況

以前にリリース済みのコードで、互換性に影響が及ぶ場合は、この規則による警告を抑制しても安全です。

使用例

次の例では、2 つのメソッドを示します。 1 つは規則に違反しているメソッドであり、もう 1 つは規則に適合するメソッドです。

using System;
using System.Globalization;

namespace Samples
{
    public static class TestClass
    {
        // This method violates the rule.
        public static string GetSomething(int first, int second)
        {
            return first.ToString(CultureInfo.InvariantCulture);
        }

        // This method satisfies the rule.
        public static string GetSomethingElse(int first)
        {
            return first.ToString(CultureInfo.InvariantCulture);
        }
    }
}

関連規則

CA1811: 呼び出されていないプライベート コードを使用しません

CA1812: インスタンス化されていない内部クラスを使用しないでください

CA1804: 使用されていないローカルを削除します