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#?
Répondre
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()
{
}
}
}
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?) –
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.
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
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
Découvrez la page de Lance
http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx
et
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.
Merci pour l'édition @ShuggyCoUk; manqué ça. –
Je pense que la plupart des projets utilisent le IDesign CSharp Coding Standard
MSDN fournit Design Guidelines qui sort ce en détail.
- 1. Quelles sont les conventions de dénomination de bibliothèque appropriées?
- 2. Comment contourner les conventions de dénomination Symbian?
- 3. Quelles sont les conventions pour les en-têtes et les fichiers cpp en C++?
- 4. Conventions de dénomination pour les étiquettes GoTo
- 5. Conventions de dénomination pour les vues Django?
- 6. Conventions de dénomination pour les threads?
- 7. Conventions de dénomination pour les déclencheurs DB
- 8. Quelles sont vos utilisations les plus courantes pour les expressions régulières?
- 9. Conventions de dénomination pour MVVM?
- 10. Quelles sont les conventions de dénomination sur les bibliothèques COM? Quand dois-je choisir .ocx, .oca, .tlb, .olb?
- 11. Quelles conventions de dénomination utilisez-vous pour les branches et les balises SVN?
- 12. Conventions de dénomination MVC pour les actions JSON
- 13. Conventions de dénomination pour les API/classes de remplacement
- 14. Comment remplacer les conventions de dénomination des rails?
- 15. Conventions de nom de colonne NHibernate courantes
- 16. Conventions de dénomination de fichier de base
- 17. Conventions de dénomination et espaces de noms
- 18. Conventions de dénomination des variables dans CakePHP
- 19. Conventions de dénomination des fichiers Jar
- 20. Combien et quelles sont les utilisations de "const" en C++?
- 21. Quelles versions de Windows sont actuellement les plus populaires?
- 22. Comment les conventions de dénomination de base de données changent-elles pour les applications multitenant?
- 23. Quelles sont les fonctionnalités les plus utilisées dans Visual Studio/C#?
- 24. Quelles sont les variables initialisées en Delphi?
- 25. Déclarations de type typedef, effet sur les temps de construction et conventions de dénomination
- 26. Quelles sont les astuces courantes dans Eclipse lorsque vous travaillez avec des fichiers jsp?
- 27. Identifier les tâches de développement courantes
- 28. Quelles sont les modifications empilables?
- 29. Quels sont les exemples les plus cool de métaprogrammation que vous avez vu en C++?
- 30. Quelles sont les façons de résoudre les fuites de mémoire en C#
Tout sauf hongrois. –
[http://stackoverflow.com/questions/127427/common-naming-conventions](http://stackoverflow.com/questions/127427/common-naming-conventions) – Raghav