41 votes

Conventions de dénomination C # pour les variables membres

J'ai vu un avis quelque part ici AFIN de ne pas nom private/public variables de membre, de manière qu'ils ne diffèrent que par le cas de la très premier caractère. Par exemple:

private string logFileName;

public string LogFileName
{
    get
    {
        return logFilename
    ....

et: private System.Windows.Forms.MainMenu mainMenu;

et: DialogResult dialogResult = this.saveConfigFileDialog.ShowDialog();

et:

public Version Version
{
    get;
    set;
}

et:

    private void CheckPollingType(PollingType pollingType)
    {

Donc, ai-je entendu de mal? Il n'y a rien de mal avec ces conventions de nommage? Si oui, quels sont les meilleurs moyens de le faire? Liens, références sont un plus.

Merci.

33voto

Brian R. Bondy Points 141769

C'est certainement un très populaire convention de nommage et je ne vois pas pourquoi vous devriez être contre elle.

Je voudrais simplement vous conseillons de suivre les conventions de Nommage pour C# fournie par le MSDN et aussi Générales des Conventions de Nommage fourni par le MSDN.

Plus particulièrement, ils ont ceci à dire au sujet des propriétés:

Ne nom de propriétés à l'aide d'un nom, le nom d'une expression ou d'un adjectif.

Le syntagme nominal ou d'adjectifs approprié pour les propriétés, car les propriétés qui contiennent des données.

Ne pas utiliser les propriétés qui correspondent à la les noms de méthodes Get.

Par exemple, ne pas le nom d'une propriété EmployeeRecord et également le nom d'une méthode GetEmployeeRecord. Les développeurs ne seront pas savoir quel membre à utiliser pour accomplir leur tâche de programmation.

Ne nom de propriétés Booléennes avec un affirmative en phrase (CanSeek au lieu de CantSeek). En option, vous pouvez également préfixe propriétés Booléennes avec Est, Peut, ou A, mais seulement lorsqu'il ajoute de la valeur.

Envisager de donner une propriété de la même nom que son type.

Lorsque vous avez une propriété qui est fortement typé pour une énumération, la nom de la propriété peut être le même comme le nom de l'énumération. Pour exemple, si vous avez une énumération nommé CacheLevel, une propriété qui retourne une de ses valeurs peut également être nommé CacheLevel.

Je pense que si il y avait une raison impérieuse à l'encontre de ce que vous suggérez ils ont mentionné dans leurs lignes directrices.

20voto

Kevin Points 57797

La plupart du temps le niveau de la classe, les variables sont précédées d'un tiret de soulignement. Si mavariable est en fait _myVariable. Beaucoup de personnes n'aiment pas varrying le nom d'un personnage, parce qu'il est trop facile de faire une erreur.

Il n'y a rien de mal à faire juste mavariable et Mavariable. C'est juste une convention, et si tout le monde suit, alors il sera probablement très bien.

Personnellement, si c'est possible je renoncer à la variable privée et de n'utiliser que les getters et setters de la propriété. La plupart du temps (mais pas tout le temps), accéder à la variable privée a été utilisé afin de ne pas permettre l'accès en écriture à la propriété.
Ce problème peut être résolu par:

public String MyVariable
{
   get;
   private set;
}

12voto

Andy_Vulhop Points 2347

En règle générale, je vois toujours des membres privés avec un _ majeur. (en supposant que ce n'est pas une propriété auto)

 private string _customerName;
public string CustomerName
{
    get{return _customerName;}
    set{_customerName = value;}
}
 

Bien sûr, le verdict final est la convention de votre équipe (en supposant que vous ne réalisiez pas un projet de loup solitaire ou que vous ne travailliez pas avec des abrutis)

8voto

Scott Chamberlain Points 32782

Je jetterai mon chapeau sur le ring avec ce que j'ai toujours utilisé

 class ClassName //Classes are capitilzed
{
    public ClassName(int myProperty) //Constructor arguments are named the same as the property they set.
    {
       _myProperty = myPropriety;
    }
    public void MyFunction(object varToBePassed) //Function names are captilized, passed pramaters are lowercase.
    {
        int sampleVar; //local variables are lowercase
    }
    public int MyProperty { get { return _myProperty; } } // Properties are capitalized

    private int _myProperty; // Private fields are lowercase and start with a _
 

2voto

JaredPar Points 333733

Non il n'y a rien de mal avec ces conventions de nommage.

La propriété version est en fait le format recommandé en fonction de la .Net cadre des lignes directrices de conception.

Le champ de la déclaration de la même manière conforme aux lignes directrices du cadre comme c'est en camelcase. C'est parfois un peu religous guerre quant à savoir si ou non la variable doit être préfixé avec un _ ou m_. C'est une question qui doit être résolue au sein de votre groupe si.

.Net cadre des lignes directrices de conception pour les membres de type

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X