Partager via


CA1801 : Passez en revue les paramètres inutilisés

TypeName

ReviewUnusedParameters

CheckId

CA1801

Catégorie

Microsoft.Usage

Modification avec rupture

Sans rupture - Si le membre n'est pas visible à l'extérieur de l'assembly, indépendamment de la modification effectuée.

Sans rupture - Si vous modifiez le membre pour utiliser le paramètre dans son corps.

Avec rupture - Si vous supprimez le paramètre et qu'il est visible à l'extérieur de l'assembly.

Cause

Une signature de méthode inclut un paramètre qui n'est pas utilisé dans le corps de la méthode. Cette règle n'examine pas les méthodes suivantes :

  • Méthodes référencées par un délégué.

  • Méthodes utilisées en tant que gestionnaires d'événements.

  • Méthodes déclarées avec le modificateur abstract (MustOverride en Visual Basic).

  • Méthodes déclarées avec le modificateur virtual (Overridable en Visual Basic).

  • Méthodes déclarées avec le modificateur override (Overrides en Visual Basic).

  • Méthodes déclarées avec le modificateur extern (instruction Declare en Visual Basic).

Description de la règle

Passez en revue les paramètres des méthodes non virtuelles qui ne sont pas utilisés dans le corps de méthode afin de vérifier l'absence de tout élément incorrect susceptible de faire échouer l'accès à ces paramètres. Les paramètres inutilisés induisent des coûts en termes de maintenance et de performances.

Parfois, une violation de cette règle peut révéler un bogue d'implémentation dans la méthode. Par exemple, le paramètre aurait dû être utilisé dans le corps de méthode. Supprimez les avertissements de cette règle si le paramètre doit exister du fait d'une compatibilité descendante.

Comment corriger les violations

Pour corriger une violation de cette règle, supprimez le paramètre inutilisé (modification avec rupture) ou utilisez le paramètre dans le corps de méthode (modification sans rupture).

Quand supprimer les avertissements

Il est possible de supprimer sans risque un avertissement de cette règle dans le cas d'un code précédemment livré pour lequel le correctif constituerait une modification avec rupture.

Exemple

L'exemple suivant illustre deux méthodes. Une méthode viole la règle et l'autre méthode satisfait la règle.

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

Règles connexes

CA1811 : Évitez le recours à du code privé non appelé

CA1812 : Évitez les classes internes non instanciées

CA1804 : Supprimez les variables locales inutilisées