Compartir a través de


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

CA1812: Evitar las clases internas sin instancia

CA1804: Quitar variables locales no utilizadas