Validation d'arguments
Mise à jour : novembre 2007
Le respect des instructions suivantes garantit la validation correcte des arguments.
Validez des arguments passés à des membres publics, protégés ou implémentés explicitement. Levez une exception System.ArgumentException ou l'une de ses classes dérivées, si la validation échoue.
Cette instruction n'exige pas la présence du code de validation dans le membre visible publiquement. Passer les arguments à une méthode interne chargée de gérer la validation est admis.
Validez les paramètres d'énumération.
Vous ne pouvez pas supposer que les arguments d'énumération sont des valeurs définies dans l'énumération dans la mesure où le Common Language Runtime (CLR) prend en charge le cast de n'importe quelle valeur entière en valeur d'énumération, que la valeur soit définie ou non dans l'énumération.
N'utilisez pas System.Enum.IsDefined (System.Type, System.Object) pour les vérifications de plages d'énumération dans la mesure où il est basé sur le type CLR de l'énumération, susceptible de varier d'une version à l'autre.
Une version ultérieure d'une bibliothèque peut ajouter des valeurs à une énumération déjà livrée. L'utilisation de IsDefined pour la validation de données peut présenter des risques. En effet, le code existant (qui n'a pas géré la nouvelle valeur) traitera cette nouvelle valeur comme une entrée valide puisque IsDefined retourne true pour la nouvelle valeur. Vérifiez que l'entrée fait partie de la plage de valeurs prises en charge par votre programme et levez une exception si ce n'est pas le cas.
Soyez conscient du fait que les arguments mutables passés peuvent avoir changé après leur validation.
S'il s'agit d'un membre sensible pour la sécurité, effectuez une copie privée de l'objet mutable et utilisez la copie pour la validation et le traitement. Cela s'applique uniquement aux données mutables. Des données immuables, telles que les objets Uri, ne doivent pas être copiées.
Portions Copyright 2005 Microsoft Corporation. Tous droits réservés.
Portions Copyright Addison-Wesley Corporation. Tous droits réservés.
Pour plus d'informations sur les instructions de conception, consultez le livre « Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries » de Krzysztof Cwalina et Brad Abrams, publié par Addison-Wesley, 2005.
Voir aussi
Concepts
Autres ressources
Instructions de conception des membres
Instructions de conception pour le développement de bibliothèques de classes