2009-08-04 7 views
2

Quelles sont les conventions de dénomination les plus courantes en C# pour les classes, les espaces de noms et les méthodes? Est-il courant d'avoir des méthodes de type getter/setter comme en Java?Quelles sont les conventions de dénomination les plus courantes en C#?

+6

Tout sauf hongrois. –

+0

[http://stackoverflow.com/questions/127427/common-naming-conventions](http://stackoverflow.com/questions/127427/common-naming-conventions) – Raghav

Répondre

2

Il existe quelques modèles courants. Un que je vois souvent et utilise dans mes propres projets est:

namespace Company.Concept.SubConcept 
{ 
    public class MyClass 
    { 
     private MyType someData; 

     public MyType SomeData 
     { 
      get { return someData; } 
      set { someData = value; } 
     } 

     public void MyMethod() 
     { 
     } 
    } 
} 
+0

Personnellement, je ne suis pas un fan des conventions m_. Le but de cette notation est de vous dire la portée de la variable. Cependant, je trouve que cela nuit à la lisibilité du code plus que cela aide à comprendre où la variable est déclarée. Si vous avez des doutes sur l'emplacement de la variable, il vous suffit de la survoler dans Visual Studio. Je pense que cette norme va sur le même chemin que la notation hongroise (souvenez-vous de tous les préfixes variables pour vous rappeler le type de la variable? N, l, sz, dw, lpsz, etc?) –

5

Non, il n'est pas courant d'utiliser des noms de style getter/setter en C#. Les propriétés devraient être utilisées pour presque tous les endroits où vous utiliseriez un getter/setter en Java. À mon humble avis, la norme de facto pour les conventions de dénomination vient des directives de conception du cadre. Il est appliqué par plusieurs outils (FxCop) et est le style dominant de nombreuses bibliothèques, y compris la BCL.

+2

Prenez note que C# 3.0 + fournit un support pour auto -mise en place des propriétés. Et n'ignorez pas l'ensemble privé. – Brian

+0

Bien que cela ne donne pas vraiment toute l'image. Je sais que vous le savez, mais j'aimerais voir la réponse à cette question: les propriétés, en substance, sont du sucre syntaxique pour les accesseurs et sont préférées aux accesseurs explicites. Lorsque vous utilisez une propriété, vous définissez vraiment ** des méthodes d'accès. À partir de C# 3.0, le langage fournit des propriétés automatiques qui créeront des champs de sauvegarde et les méthodes appropriées pour les obtenir/les définir via la syntaxe de propriété automatique. Venant d'un contexte Java, il m'a fallu un certain temps pour accéder aux propriétés jusqu'à ce que je comprenne ce qu'ils étaient vraiment. – tvanfosson

11

Guidelines for Names (de 012.325., dans lequel vous trouverez également des sections sur properties et choosing between properties and methods. Dans ce dernier article, vous trouverez les éléments suivants:

utilisent une propriété, plutôt qu'une méthode , si la valeur de la propriété est stockée dans la mémoire du processus et la propriété serait tout simplement fournir un accès à la valeur.

+0

Merci pour l'édition @ShuggyCoUk; manqué ça. –

Questions connexes