Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Ce contenu est réimprimé avec l’autorisation de Pearson Education, Inc. tiré de Lignes directrices de conception de framework : Conventions, Idiomes et Modèles pour les bibliothèques .NET réutilisables, 2ème édition. Cette édition a été publiée en 2008, et le livre a été entièrement révisé dans la troisième édition. Certaines informations de cette page peuvent être obsolètes.
Les instructions d’affectation de noms qui suivent s’appliquent à l’affectation de noms de type général.
✔️ Nommez les classes et structures avec des noms ou expressions nominales, en utilisant PascalCasing.
Cela distingue les noms de types des méthodes, qui portent des noms sous forme de phrases verbales.
✔️ Utiliser DO pour nommer les interfaces avec des syntagmes adjectivaux, ou occasionnellement avec des noms ou des syntagmes nominaux.
Les noms et les expressions de nom doivent être utilisés rarement et ils peuvent indiquer que le type doit être une classe abstraite, et non une interface.
❌ Ne donnez pas de préfixe aux noms de classe (par exemple, « C »).
✔️ ENVISAGEZ de terminer le nom des classes dérivées par celui de la classe de base.
Cela est très lisible et explique clairement la relation. Voici quelques exemples de ceci dans le code : ArgumentOutOfRangeException
, qui est un type de Exception
, et SerializableAttribute
, qui est un type de Attribute
. Toutefois, il est important d’utiliser un jugement raisonnable pour appliquer cette directive ; par exemple, la Button
classe est un type d’événement Control
, même si Control
elle n’apparaît pas dans son nom.
✔️ Préfixez les noms d’interface avec la lettre I pour indiquer que le type est une interface.
Par exemple, IComponent
(nom descriptif), ICustomAttributeProvider
(expression de nom) et IPersistable
(adjectif) sont des noms d’interface appropriés. Comme avec d’autres noms de types, évitez les abréviations.
✔️ Assurez-vous que les noms diffèrent uniquement par le préfixe « I » sur le nom de l’interface lorsque vous définissez une paire classe-interface où la classe est une implémentation standard de l’interface.
Noms des paramètres de type générique
Les génériques ont été ajoutés à .NET Framework 2.0. La fonctionnalité a introduit un nouveau type d’identificateur appelé paramètre de type.
✔️ Nommez les paramètres de type générique avec des noms descriptifs, sauf si un nom avec une seule lettre est complètement auto-explicatif et qu'un nom descriptif ne rajouterait pas de valeur.
✔️ ENVISAGEZ d’utiliser T
comme nom de paramètre de type pour les types avec un paramètre de type à lettre unique.
public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }
✔️ Préfixez les noms de paramètres de type descriptif avec T
.
public interface ISessionChannel<TSession> where TSession : ISession {
TSession Session { get; }
}
✔️ ENVISAGEZ d’indiquer les contraintes placées sur un paramètre de type dans le nom du paramètre.
Par exemple, un paramètre limité à ISession
peut être appelé TSession
.
Noms des types courants
✔️ Suivez les instructions décrites dans le tableau suivant lorsque vous nommez des types dérivés ou implémentant certains types .NET Framework.
Type de Base | Directives sur les types dérivés et ceux implémentant |
---|---|
System.Attribute |
✔️ Ajoutez le suffixe « Attribute » aux noms des classes d’attributs personnalisées. |
System.Delegate |
✔️ Ajoutez le suffixe « EventHandler » aux noms des délégués utilisés dans les événements. ✔️ Ajoutez le suffixe « Callback » aux noms de délégués autres que ceux utilisés comme gestionnaires d’événements. ❌ N’ajoutez pas le suffixe « Délégué » à un délégué. |
System.EventArgs |
✔️ Ajoutez le suffixe « EventArgs ». |
System.Enum |
❌ NE PAS dériver de cette classe ; utilisez plutôt le mot clé pris en charge par votre langue ; par exemple, en C#, utilisez le enum mot clé.❌ N’ajoutez pas le suffixe « Enum » ou « Flag ». |
System.Exception |
✔️ Ajoutez le suffixe « Exception ». |
IDictionary IDictionary<TKey,TValue> |
✔️ Ajoutez le suffixe « Dictionnaire ». Notez qu’il IDictionary s’agit d’un type spécifique de collection, mais cette directive est prioritaire sur les lignes directrices de collections plus générales qui suivent. |
IEnumerable ICollection IList IEnumerable<T> ICollection<T> IList<T> |
✔️ Ajoutez le suffixe « Collection ». |
System.IO.Stream |
✔️ Ajoutez le suffixe « Stream ». |
CodeAccessPermission IPermission |
✔️ Ajoutez le suffixe « Permission ». |
Nommer les énumérations
En général, les noms des types d’énumération (également appelés énumérations) doivent suivre les règles de nommage standard pour les types (PascalCasing, etc.). Toutefois, il existe des instructions supplémentaires qui s’appliquent spécifiquement aux énumérations.
✔️ Utilisez un nom de type singulier pour une énumération, sauf si ses valeurs sont des champs de bits.
✔️ Utilisez un nom de type pluriel pour une énumération avec des champs de bits comme valeurs, également appelée énumération d’indicateurs.
❌ N’utilisez PAS de suffixe « Enum » dans les noms de types d’énumération.
❌ N’utilisez PAS les suffixes « Flag » ou « Flags » dans les noms de types d’énumération.
❌ N’utilisez PAS de préfixe sur les noms de valeurs d’énumération (par exemple, « ad » pour les énumérations ADO, « rtf » pour les énumérations de texte enrichi, etc.).
Portions © 2005, 2009 Microsoft Corporation. Tous droits réservés.
Réimprimé par l’autorisation de Pearson Education, Inc. tiré de Framework Design Guidelines : Conventions, Idioms et Patterns pour les bibliothèques .NET réutilisables, 2e édition par Krzysztof Cwalina et Brad Abrams, publié le 22 octobre 2008 par Addison-Wesley Professional dans le cadre de la Série de développement Microsoft Windows.