C# Language
Conventions de nommage
Recherche…
Introduction
Cette rubrique présente certaines conventions de nommage de base utilisées lors de l'écriture dans le langage C #. Comme toutes les conventions, elles ne sont pas appliquées par le compilateur, mais assureront la lisibilité entre les développeurs.
Pour obtenir des directives complètes sur la conception de .NET Framework, consultez docs.microsoft.com/dotnet/standard/design-guidelines .
Remarques
Choisissez des noms d'identifiant facilement lisibles
Par exemple, une propriété nommée HorizontalAlignment est plus lisible en anglais que AlignmentHorizontal.
Favoriser la lisibilité sur la brièveté
Le nom de la propriété CanScrollHorizontally
est meilleur que ScrollableX
(une référence obscure à l'axe X).
Évitez d'utiliser des traits de soulignement, des tirets ou tout autre caractère non alphanumérique.
N'utilisez pas de notation hongroise
La notation hongroise est la pratique consistant à inclure un préfixe dans les identificateurs pour coder certaines métadonnées relatives au paramètre, telles que le type de données de l'identificateur, par exemple string strName
.
Evitez également d'utiliser des identifiants en conflit avec les mots-clés déjà utilisés dans C #.
Abréviations et acronymes
En général, vous ne devez pas utiliser d’abréviations ou d’acronymes; ceux-ci rendent vos noms moins lisibles. De même, il est difficile de savoir quand on peut supposer qu'un acronyme est largement reconnu.
Conventions de capitalisation
Les termes suivants décrivent différentes manières d’identifier les cas.
Pascal Casing
La première lettre de l'identifiant et la première lettre de chaque mot concaténé ultérieur sont en majuscules. Vous pouvez utiliser la casse Pascal pour les identificateurs de trois caractères ou plus. Par exemple: BackColor
Camel Casing
La première lettre d'un identifiant est en minuscule et la première lettre de chaque mot concaténé ultérieur est en majuscule. Par exemple: backColor
Majuscule
Toutes les lettres de l'identifiant sont en majuscules. Par exemple: IO
Règles
Lorsqu'un identifiant est constitué de plusieurs mots, n'utilisez pas de séparateurs, tels que des traits de soulignement ("_") ou des tirets ("-"), entre les mots. Au lieu de cela, utilisez le boîtier pour indiquer le début de chaque mot.
Le tableau suivant résume les règles de capitalisation pour les identificateurs et fournit des exemples pour les différents types d'identificateurs:
Identifiant | Cas | Exemple |
---|---|---|
Variable locale | chameau | carName |
Classe | Pascal | AppDomain |
Type d'énumération | Pascal | ErrorLevel |
Valeurs d'énumération | Pascal | Erreur fatale |
un événement | Pascal | ValueChanged |
Classe d'exception | Pascal | WebException |
Champ statique en lecture seule | Pascal | RedValue |
Interface | Pascal | IDisposable |
Méthode | Pascal | ToString |
Espace de noms | Pascal | System.Drawing |
Paramètre | chameau | typeName |
Propriété | Pascal | Couleur de fond |
Plus d'informations peuvent être trouvées sur MSDN .
Interfaces
Les interfaces doivent être nommées avec des noms ou des syntagmes nominaux, ou des adjectifs décrivant le comportement. Par exemple, IComponent
utilise un nom descriptif, ICustomAttributeProvider
utilise une expression nominale et IPersistable
utilise un adjectif.
Les noms d'interface doivent être précédés de la lettre I
pour indiquer que le type est une interface et que le cas Pascal doit être utilisé.
Vous trouverez ci-dessous des interfaces correctement nommées:
public interface IServiceProvider
public interface IFormatable
Champs privés
Il existe deux conventions communes pour les champs privés: camelCase
et _camelCaseWithLeadingUnderscore
.
Affaire de chameau
public class Rational
{
private readonly int numerator;
private readonly int denominator;
public Rational(int numerator, int denominator)
{
// "this" keyword is required to refer to the class-scope field
this.numerator = numerator;
this.denominator = denominator;
}
}
Housse camel avec soulignement
public class Rational
{
private readonly int _numerator;
private readonly int _denominator;
public Rational(int numerator, int denominator)
{
// Names are unique, so "this" keyword is not required
_numerator = numerator;
_denominator = denominator;
}
}
Espaces de noms
Le format général des espaces de noms est le suivant:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Les exemples comprennent:
Fabrikam.Math
Litware.Security
Le préfixe des noms d'espaces de noms avec un nom de société empêche les espaces de noms de différentes sociétés de porter le même nom.
Enums
Utilisez un nom singulier pour la plupart des énumérations
public enum Volume
{
Low,
Medium,
High
}
Utilisez un nom pluriel pour les types Enum qui sont des champs de bits
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Remarque: Ajoutez toujours le FlagsAttribute
à un type Enum de champ de bits.
Ne pas ajouter 'enum' comme suffixe
public enum VolumeEnum // Incorrect
N'utilisez pas le nom enum dans chaque entrée
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
Des exceptions
Ajouter 'exception' comme suffixe
Les noms d'exception personnalisés doivent être suffixés avec "-Exception".
Les exceptions ci-dessous sont correctement nommées:
public class MyCustomException : Exception
public class FooException : Exception