Tout au long de Silverlight et WPF, les propriétés qui sont des valeurs booléennes sont préfixées avec est em> ( presque tous ), par exemple: p>
Dans tous les autres frameworks Microsoft (Winforms, BCL, ASP.NET) est em> n'est pas utilisé. Ce qui a incité à leur équipe à s'éloigner de la convention de dénomination d'origine - est-ce une évolution ou un nommage qui devait coller? P>
isenabled code> li>
istabstop code> li>
ishittestvisible code> li>
ul>
3 Réponses :
Le code> est code> préfixe peut donner un indice sur le fait que la propriété n'a qu'un obtenir code> accessor et, comme dit Thomas et Rachel, c'est un bool. Ignorer le préfixe si vous souhaitez mettre en œuvre les deux
obtenir code> et
définir les accesseurs code> et son type est autre que BOOL. P>
Je suis en désaccord, je sais que j'ai défini isenabled sur certains objets avant. C'est probablement parce que c'est une valeur booléenne et non quelque chose que vous pouvez définir à une valeur.
J'aurais tendance à être d'accord avec cette explication, mais de nombreuses propriétés de lecture / écriture dans WPF ont ce préfixe ... Je pense que c'est plutôt destiné à montrer que la propriété est une bool
@Thomas et Rachel - en fait c'est ce que je voulais dire, mais j'ai réussi à écrire quelque chose d'autre :)
Personnellement, j'essaie toujours de préfixer les valeurs booléennes avec quelque chose qui ajoute un peu plus de sens (est, a, peut, etc.). Mon utilisation provient des directives Microsoft suivantes:
Nommez les propriétés booléennes avec un phrase affirmative (Cansek au lieu de Cantsek). Éventuellement, vous pouvez aussi Préfixes Boolean Properties avec est, Peut, ou a, mais seulement où il ajoute valeur. p> blockQuote>
MSDN - noms des membres de type p>
Je ne crois pas que c'était toujours le cas frappe> Ce n'était pas toujours le cas. Ces pratiques remontent à .NET 2.0. Avant cela, les choses étaient une partie juste. Nettoyant ces noms dans les versions plus récentes du cadre, cependant, causerait toutes sortes de maux de tête (par conséquent, une partie du code-cadre utilise la convention et certains ne le font pas). P> Cela rend définitivement les choses plus lisibles . Même en utilisant un exemple de votre question. Que préféreriez-vous avoir? P>
xxx pré> ou p>
xxx pré> p>
C'est intéressant que c'est une nouvelle recommandation, explique la plupart des winforms n'ayant pas le préfixe.
@Chris S - Il est difficile de tout comprendre la première fois. Cela aurait pu être l'une des leçons tirées de .NET 1 / 1.1
Pour Tabstop, "est" ajoute une valeur claire: la valeur de la propriété vous indique si quelque chose est un arrêt de tabulation; La valeur n'est pas une tabulation elle-même. Pour activé, la valeur ajoutée est plus subtile. "Est" ici distingue ici que quelque chose est activé et un "activé", tout ce qui serait, peut-être une copie activée. Une autre valeur ajoutée est que l'objet lit plus comme anglais: myObject.isenabled.
@EdwardBrey lisant "activé" en tant que nom serait un stretch pour la langue anglaise. Donc je pense que la chute de "est" est appropriée ici
@ fjch1997 Tu as raison. Noun ambiguïté n'est probablement pas la raison. Dans une autre conception, la différenciation pourrait être nécessaire. Par exemple, si vous aviez une touche code> immuable code>, je pouvais voir avoir isenabled code> de type bool et
activé code> (court pour
enabledbutton code>) de type
bouton code> qui renvoie une copie activée. Cependant, puisque WPF utilise des objets mutables, ce type de différenciation n'est pas nécessaire.
Ajouter est code> devant les propriétés booléens permet d'ajouter un événement notifiant un changement positif sans conflit de nom. Par exemple, vous pouvez avoir une propriété
isenabled code> et événements
activé code> et
désactivé code>. Ce type de nommage des événements serait cohérent avec l'événement existant
FrameworkElement.Initialisé code>. Donc, peut-être que la justification était de préciser clairement que le député était une propriété, pas un événement. Ou peut-être c'était peut-être de ne pas empêcher d'ajouter de tels événements à l'avenir. Ou peut-être autre chose; Je suis simplement spéculant.
Le code> est code> préfixe fait partie des directives officielles de conception Microsoft Framework (cela ne signifie pas que tous les produits MS y adhèrent ...). P>
Personnellement, je le trouve utile, s'il est toujours utilisé. Il vous dit immédiatement qu'une propriété est un booléen. Vous pouvez l'utiliser ou non, la chose la plus importante est d'être cohérente à ce sujet ... p>
Thomas P>
Tout à fait lié à Stackoverflow.com/Questions/3874350/... et SoftwareEngineering.stackexchange.com/Questions/348649/...