Udostępnij za pośrednictwem


CA1801: Przejrzyj nieużywane parametry

TypeName

ReviewUnusedParameters

CheckId

CA1801

Kategoria

Microsoft.Usage

Zmiana kluczowa

Niekluczowa - Jeśli element członkowski nie jest widoczny spoza zestawu, niezależnie dokonywanej zmiany.

Niekluczowa - Jeśli element członkowski zostanie zmieniony, aby wykorzystywał parametr w swojej treści.

Kluczowa - Jeśli parametr zostanie usunięty i jest on widoczny spoza zestawu.

Przyczyna

Podpis metody zawiera parametr, który nie jest używany w treści metody.Ta reguła nie bada następujących metod:

  • Metody, do których odwołuje się obiekt delegowany.

  • Metody stosowane jako programy obsługi zdarzeń.

  • Metody zadeklarowane z modyfikatorem abstract (MustOverride w języku Visual Basic).

  • Metody zadeklarowane z modyfikatorem virtual (Overridable w języku Visual Basic).

  • Metody zadeklarowane z modyfikatorem override (Overrides w języku Visual Basic).

  • Metody zadeklarowane z modyfikatorem extern (instrukcja Declare w języku Visual Basic).

Opis reguły

Przegląd parametrów w nie-wirtualnych metodach, które nie są używane w treści metody, aby upewnić się, że żadne poprawności nie istnieją wokół niepowodzenia dostępu do nich.Nieużywane parametry ponoszą koszty utrzymania i wydajności.

Czasami naruszenie tej zasady może wskazywać na usterkę implementacyjną w metodzie.Na przykład, parametr powinien być użyty w treści metody.Należy pominąć ostrzeżenia tej reguły, jeśli parametr ma istnieć ze względu na zgodność ze starszymi wersjami.

Jak naprawić naruszenia

Aby naprawić naruszenie tej zasady, usuń nieużywany parametr (kluczowa zmiana) lub użyj parametr w treści metody (niekluczowa zmiana).

Kiedy pominąć ostrzeżenia

Można bezpiecznie pominąć ostrzeżenie od tej reguły dla poprzednio wysłanego kodu, dla którego naprawa byłaby zmianą kluczową.

Przykład

W poniższym przykładzie przedstawiono dwie metody.Jedna metoda narusza tę regułę, a inna ją spełnia.

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);
        }
    }
}

Powiązane reguły

CA1811: Unikaj niewywołanego kodu prywatnego

CA1812: Unikaj wewnętrznych klas bez wystąpień

CA1804: Usuń nieużywane zmienne lokalne