Je cours assez souvent que je pensais voir ce que les autres avaient à dire à ce sujet.
Utilisation des conventions de stylécop, je trouve que j'ai souvent un nom de propriété difficile à faire différent du nom de la classe. Par exemple: p> Il compile et fonctionne, mais semble être un moyen facile de confondre les choses, même avec l'utilisation de "Ceci". P> < / p>
3 Réponses :
C'est une convention de nommage typique lorsqu'il n'y aura qu'une seule propriété de type Bien sûr, s'il y a d'autres utilisations, vous avez besoin de noms différents. P> ProjectManager code> dans une classe donnée. Il cesse d'être déroutant car il n'y a pas d'autres utilisations du type de ProjectManager code>. P>
Ceci est en fait un modèle très courant de la programmation .NET. En particulier, avec des types et des membres énumoires, car il s'agit des directives de conception .NET recommandées par une méthode de programmation. p>
4.0 Référence des directives de conception p>
Bien que cela puisse être un peu déroutant, ce n'est pas une fois que vous l'avez vu plusieurs fois. Les outils supportent bien ce motif et que ceux-ci sont un type et l'autre une instance, il est difficile de les inverser accidentellement sans provoquer une erreur de compilation. p>
Jared, pourriez-vous poster la version actuelle de ce lien? Lorsque .NET 1.1 Les liens sont affichés, certaines personnes se terminent après plus de liens, ne réalisant pas qu'ils sont dans le monde .NET 1.1.
@John, n'a même pas réalisé que j'avais connu des versions 1.1. Merci d'avoir attrapé ça. Mis à jour pour les lignes directrices 4.0
Nous devons amener votre entreprise à passer à .NET 3.5, ou .NET 2.0 au pire. :-)
Je suppose que si cela est pris en charge et une pratique courante, cela ne peut pas être aussi mauvais.
@Andy: En effet, ce n'est pas si mal. Si vous pouvez l'éviter, génial. Mais l'exemple canonique de "couleur de couleur" est canonique car il illustre pourquoi c'est un problème aussi courant. Vous avez une couleur de propriété - quel autre nom pourriez-vous choisir? Vous avez une couleur Enum - à nouveau, quel autre nom pourriez-vous choisir? Tout autre nom pour l'un ou l'autre semble affecté et étrange.
Je suis d'accord avec les autres réponses. Pour des raisons d'exigence, je trouve parfois un moyen de généraliser le nom de la classe un peu plus. Je comprends que votre exemple n'était qu'un exemple, mais une façon de le faire serait:
public class Person { // Stuff here } public class OtherClass { private Person ProjectManager { get; set; } }
Le problème de couleur de couleur. Si le meilleur nom de la propriété est i> le nom de la classe, allez-y. Sinon, vous pourriez avoir l'habitude de surcharger inutilement votre propriété et / ou vos noms de classe.
Je suis d'accord, ça me confond aussi. Ceci.ProjectManager le résout à peu près.
En effet, c'est le célèbre problème de «couleur de couleur». La langue C # a été soigneusement conçue pour que vous puissiez vous échapper avec ce modèle, mais cela cause des cas d'angle intéressants. Pour une analyse des conséquences de ces règles, voici mon article: blogs.msdn.com/ERICLIPPERT/ARCHIVE/2009/07/06/COLOR-COLOR.AS PX
Et sur un autre sujet sur le gestionnaire de noms: CODINGHORROR .com / Blog / 2006/03 / ...