CA1801: Revisar parámetros sin utilizar
Nombre de tipo |
ReviewUnusedParameters |
Identificador de comprobación |
CA1801 |
Categoría |
Microsoft.Usage |
Cambio problemático |
Poco problemático: si el miembro no se puede ver fuera del ensamblado, independientemente del cambio realizado. Poco problemático: si cambia el miembro para utilizar el parámetro dentro de su cuerpo. Problemático: si quita el parámetro y está visible fuera del ensamblado. |
Causa
Una firma de método incluye un parámetro que no se utiliza en el cuerpo del método. Esta regla no examina los siguientes métodos:
Métodos a los que hace referencia un delegado.
Métodos utilizados como controladores de eventos.
Los métodos declarados con el modificador abstract (MustOverride en Visual Basic).
Los métodos declarados con el modificador virtual (Overridable en Visual Basic).
Los métodos declarados con el modificador override (Overrides en Visual Basic).
Los métodos declarados con el modificador extern (la instrucción Declare en Visual Basic).
Descripción de la regla
Revise los parámetros de métodos no virtuales que no se utilizan en el cuerpo del método para asegurarse de que no hay exactitud en torno al error para tener acceso a ellos. Los parámetros no utilizados incurren en mantenimiento y costos de rendimiento.
A veces una infracción de esta regla puede indicar un error en la implementación del método. Por ejemplo, el parámetro debería haberse utilizado en el cuerpo del método. Suprima las advertencias de esta regla si el parámetro tiene que existir por compatibilidad con versiones anteriores.
Cómo corregir infracciones
Para corregir una infracción de esta regla, quite el parámetro que no se utiliza (un cambio importante) o utilice el parámetro en el cuerpo del método (un cambio poco importante).
Cuándo suprimir advertencias
Es seguro suprimir una advertencia de esta regla para el código previamente distribuido para el que la corrección supondría un cambio importante.
Ejemplo
En el ejemplo siguiente se muestran dos métodos. Un método infringe la regla y el otro método satisface la regla.
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);
}
}
}
Reglas relacionadas
CA1811: Evitar código privado al que no se llama