CA1026 : Les paramètres par défaut ne doivent pas être utilisés
Élément | Valeur |
---|---|
ID de la règle | CA1026 |
Category | Microsoft.Design |
Modification avec rupture | Rupture |
Cause
Un type visible en externe contient une méthode visible en externe qui utilise un paramètre par défaut.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Les méthodes qui utilisent des paramètres par défaut sont autorisées dans le cadre de la spécification CLS (Common Language Specification). Cette spécification permet toutefois aux compilateurs d’ignorer les valeurs attribuées à ces paramètres. Le code écrit pour les compilateurs qui ignorent les valeurs des paramètres par défaut doit fournir explicitement les arguments de chacun des paramètres par défaut. Pour préserver le comportement souhaité d’un langage de programmation à l’autre, les méthodes qui utilisent des paramètres par défaut doivent être remplacées par des surcharges de méthodes fournissant les paramètres par défaut.
Le compilateur ignore les valeurs des paramètres par défaut de Managed Extension pour C++ lorsqu’il accède au code managé. Le compilateur Visual Basic prend en charge les méthodes comportant des paramètres par défaut qui utilisent le mot clé Facultatif.
Comment corriger les violations
Pour corriger une violation de cette règle, remplacez la méthode qui utilise des paramètres par défaut par des surcharges de méthode fournissant les paramètres par défaut.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L’exemple suivant montre une méthode qui utilise des paramètres par défaut et les méthodes surchargées qui fournissent des fonctionnalités équivalentes.
Imports System
<Assembly: CLSCompliant(True)>
Namespace DesignLibrary
Public Class DefaultVersusOverloaded
Sub DefaultParameters(Optional parameter1 As Integer = 1, _
Optional parameter2 As Integer = 5)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
Sub OverloadedMethod()
OverloadedMethod(1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer)
OverloadedMethod(parameter1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer, parameter2 As Integer)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
End Class
End Namespace
Règles associées
CA1025 : Remplacer les arguments répétitifs par un tableau params
Voir aussi
Indépendance du langage et composants indépendants du langage
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour