Par exemple, une classe comme:
class Dog { } //never mind that there's nothing in it...
puis une propriété comme:
Dog Dog { get; set; }
On m'a dit que si je ne peux pas trouver un nom plus imaginatif pour cela, alors je dois utiliser:
Dog DogObject { get; set; }
Avez-vous des idées sur la meilleure façon de les nommer?
c#
naming
properties
Storm Kiernan
la source
la source
Person
classe contenant uneDog
propriété appeléeDog
Réponses:
Cela pourrait être une mauvaise pratique, sans le fait qu'il soit déjà assez évident de quoi vous parlez dans votre code, en fonction du contexte.
Quel est le constructeur de type? Quel est l'objet? Pas confus? OK, que diriez-vous
Quel est l'objet? Quelle est la méthode d'usine statique sur le type? Toujours pas confus? Je ne le pensais pas.
La seule fois où j'ai vu un problème potentiel, c'est lorsque l'arbre de l'espace de nommage est assez élaboré et que le compilateur ne peut pas comprendre l'ambiguïté, auquel cas vous vous retrouvez avec quelque chose comme
Dans tous les cas, cela ne devrait se produire qu'avec les propriétés automatiques (et peut-être les énumérations), car les noms de variables locaux sont toujours camelCased, évitant ainsi toute ambiguïté.
la source
Dog
une méthode d'instance était appeléeCreate
, mais vous plongeriez dans des pratiques de codage assez terribles à ce stade.Non seulement c'est une pratique raisonnable, mais le langage a été spécialement conçu pour permettre cela. Recherchez les règles et une justification dans la spécification C # pour "Color Color" et consultez
http://blogs.msdn.com/b/ericlippert/archive/2009/07/06/color-color.aspx
pour certains cas d'angle intéressants qui découlent de cette décision.
Vous ne devez en aucun cas nommer une propriété "DogObject" afin d'éviter de l'appeler de la même manière que son type; qui contredit directement les directives de conception du cadre.
la source
Color
), une telle utilisation semble raisonnable. Je ne l'aime pas tellement, cependant, avec lesIDisposable
types mutables ou . «Un contrôleFont
» fait-il référence aux aspects de l'état qui sont encapsulés par le bien, ou à l'instanceFont
identifiée par le getter du bien?C'est parfaitement bien de l'appeler
Dog
et c'est en fait ce que Microsoft recommande dans les directives de nommage du Framework :Et voici l'exemple qu'ils utilisent dans le guide ci-dessus:
la source