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: 呼び出されていないプライベート コードを使用しません