CA1801: проверьте неиспользуемые параметры
TypeName |
ReviewUnusedParameters |
CheckId |
CA1801 |
Категория |
Microsoft.Usage |
Критическое изменение |
Не критическое, если член не виден снаружи сборки вне зависимости от внесенных изменений. Не критическое, если элемент изменяется для использования параметра внутри его основной части. Критическое, если параметр будет удален и он виден вне сборки. |
Причина
Сигнатура метода включает параметр, не использующийся в основной части метода.В этом правиле не рассматриваются следующие методы:
Методы, на которые ссылаются делегаты.
Методы, используемые как обработчики событий.
Методы, объявленные с модификатором abstract (MustOverride в Visual Basic).
Методы, объявленные с модификатором virtual (Overridable в Visual Basic).
Методы, объявленные с модификатором override (Overrides в Visual Basic).
Методы, объявленные с модификатором extern (оператор Declare в Visual Basic).
Описание правила
Проверьте параметры в невиртуальных методах, которые не используются в основной части метода, чтобы убедиться, что код не содержит ошибок.Из-за неиспользуемых параметров усложняется обслуживание и снижается производительность.
Иногда из-за нарушения этого правила в методе может возникнуть ошибка реализации.Например, параметр должен был быть использован в основной части метода.Отключайте предупреждения этого правила, если параметр необходим в целях обратной совместимости.
Устранение нарушений
Чтобы устранить нарушение этого правила, удалите неиспользуемый параметр (критическое изменение) или используйте параметр в основной части метода (некритическое изменение).
Отключение предупреждений
Можно безопасно отключать предупреждения этого правила для поставленного ранее кода, изменение которого будет критическим.
Пример
В следующем примере показаны два метода.Один метод нарушает правило, а второй метод соответствует правилу.
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: не используйте невызываемый закрытый код