Passez en revue les paramètres inutilisés
Mise à jour : novembre 2007
TypeName |
ReviewUnusedParameters |
CheckId |
CA1801 |
Catégorie |
Microsoft.Performance |
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
Évitez le recours à du code privé non appelé