C# convention de nommage pour les constantes?
private const int THE_ANSWER = 42;
ou
private const int theAnswer = 42;
Personnellement, je pense que les Ide modernes nous devrions aller avec camelCase comme ALL_CAPS semble étrange. Qu'en pensez-vous?
- quel est le sens de "la" dans cet exemple? Est-ce que dans "The Hitchhiker's Guide to the Galaxy" ou est-ce du report de certains norme de codage C++? (E. g. un vieux C++ cadre pour Macintosh, PENSE que C [et, plus tard, Symantec C++], utilisé préfixe "son" pour le pointeur/référence les membres et "la" pour les scalaires membres).
- puisque la valeur de la constante est 42, j'ai fortement trouve que c'est une référence à la Le Hitchhiker's Guide to the Galaxy.
- C'est créatif! Mais des noms comme itsEmployee et itsCostumer sonores comme ils pourraient être trompeuses.
- MSDN: la Capitalisation des Conventions de msdn.microsoft.com/en-us/library/vstudio/ms229043(v=vs. 90).aspx
- Je préfère
theAnswer
. Auparavant, la notation hongroise fan, mais depuis que j'ai appris à ne pas l'utiliser, j'aime strictement éviter des meta-indication dans l'appellation. En va de même pour les interfaces deIInterface
. Je préfèreInterfacable
. Mais lorsque vous travaillez dans une équipe, j'ai appris à respecter les règles 🙁 - Connexes: Nommage des constantes locales: UpperCamelCase ou lowerCamelCase?
- MSDN recommande l'utilisation de "TitleCase" pour les constantes, de sorte qu'il serait "TheAnswer" (même si, comme d'autres l'ont commenté en général, vous ne devriez pas le préfixe de vos noms de variables avec les "Le", comme il n'a pas de valeur ajoutée).
- Pourquoi est -
Math.PI
en majuscules? - Le problème avec les réponses ici, c'est que les exemples sont un/deux mots variables. Mais quand vous venez à travers un très de définition spécifique pour une valeur qui est utilisée à l'échelle de l'application, comme
Temporary_Employee_Subscription_January_Grace_Period
, ou quoi que ce soit que des points très précis de la propriété d'une catégorie dans une entreprise en particulier de la logique de cas, la lisibilité de la définition est affecté lors de la suppression des traits de soulignement:TemporaryEmployeeSubscriptionJanuaryGracePeriod
. Pour moi, c'est un type distinct de constantes qui n'est pas comme votre commune "Enum"-type de constantes. - Il mérite plus de réflexion que de "Faire/Donut".
Vous devez vous connecter pour publier un commentaire.
Recommandé de nommage et de capitalisation de la convention est d'utiliser Pascal boîtier pour les constantes (Microsoft dispose d'un outil nommé StyleCop que tous les documents préféré conventions et pouvez vérifier votre source pour la conformité - si c'est un peu trop anale de rétention pour beaucoup de gens de goût). par exemple,
Le Pascal convention de capitalisation est également documentée dans Microsoft Cadre Des Lignes Directrices De Conception.
En fait, il est
Au moins si vous regardez la .NET-library, qui OMI est la meilleure façon de décider des conventions de nommage - de sorte que votre code n'a pas l'air de sortir de la place.
Visuellement, en majuscules est le chemin à parcourir. Il est donc reconnaissable de cette façon.
Pour l'amour de l'unicité et de l'laissant aucune chance de deviner, je vote pour UPPER_CASE!
Note: Les majuscules seront utiles lorsque les constantes doivent être utilisés dans le même fichier, en haut de la page et pour intellisense; toutefois, si elles devaient être déplacés à un organisme indépendant de la classe, en utilisant les majuscules ne ferait pas beaucoup de différence, à titre d'exemple:
J'y vais toujours avec la majuscule pour const valeurs, mais c'est plus par habitude que pour une raison particulière.
Bien sûr, il est facile de voir immédiatement que quelque chose est un const. La question pour moi est: avons-nous vraiment besoin de cette information? Nous permet-elle d'une quelconque manière à éviter les erreurs? Si je assigner une valeur à la const, le compilateur va me dire j'ai fait quelque chose de stupide.
Ma conclusion: Aller avec le dos de chameau boîtier. Peut-être que je vais changer mon style trop 😉
Edit:
Que quelque chose odeurs le hongrois n'est pas vraiment un argument valable, de l'OMI. La question devrait toujours être: faut-il aider, ou ne fait-il mal?
Il ya des cas où le hongrois aide. Pas beaucoup aujourd'hui, mais ils existent encore.
Tout d'abord, la Notation hongroise est la pratique de l'utilisation d'un préfixe à l'affichage d'un paramètre de type de données ou de l'utilisation prévue.
Microsoft conventions de nommage pour dit pas de la Notation hongroise
http://en.wikipedia.org/wiki/Hungarian_notation
http://msdn.microsoft.com/en-us/library/ms229045.aspx
En utilisant des MAJUSCULES n'est pas encouragée comme indiqué ici:
Pascal est le Cas de la convention acceptable, et des CRIS de CASQUETTES.
http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
Microsoft indique également ici que les MAJUSCULES peut être utilisée si elle est faite pour correspondre au existait régime.
http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
Ce joli beaucoup, il résume.
Laisser hongrois vers le Hongrois.
Dans l'exemple que j'avais même de sortir définitivement de l'article et juste aller avec
Est que la réponse ou est-ce la réponse?
*Fabriqué modifier comme Pascal strictement exact, mais je pensais que la question était à la recherche de plus d'une réponse à la vie, l'univers et tout.
The
si je le pouvais. 🙂Dans son article Les Constantes (Guide De Programmation C#), Microsoft donne l'exemple suivant:
Donc, pour les constantes, il apparaît que Microsoft recommande l'utilisation de
camelCasing
. Mais notez que ces constantes sont définies localement.Sans doute, le nom de l'externe visible constantes est de plus en plus d'intérêt. Dans la pratique, des documents Microsoft à ses constantes publiques dans le .NET bibliothèque de classes champs. Voici quelques exemples:
static readonly
)Les deux premiers sont des exemples de
PascalCasing
. La troisième semble suivre de Microsoft La Capitalisation Des Conventions pour les deux lettres de l'acronyme (bien que pi n'est pas un acryonym). Et le quatrième qui semble suggérer que la règle pour les deux lettres acryonym s'étend à une seule lettre de l'acronyme ou de l'identifiant commeE
(qui représente la constante mathématique e).En outre, à sa Capitalisation des Conventions de document, Microsoft très directement les états que les identificateurs de champ devrait être nommé par
PascalCasing
et donne les exemples suivants pour MessageQueue.InfiniteTimeout et UInt32.Min:Conclusion: l'Utilisation
PascalCasing
pour les constantes publiques (qui font l'objet d'const
oustatic readonly
champs).Enfin, autant que je sache, Microsoft ne prend pas en avocat de nommage spécifique de capitalisation ou de conventions pour privé identificateurs comme illustré dans les exemples présentés dans la question.
J'ai effectivement tendance à préférer PascalCase ici - mais d'habitude, je suis coupable de UPPER_CASE...
La ALL_CAPS est prise à partir du C et C++ façon de travailler, je crois. Cet article ici explique comment le style des différences sont apparues.
Dans la nouvelle IDE de Visual Studio, il est facile d'identifier le type, la portée et si ils sont constants, donc il n'est pas strictement nécessaire.
La FxCop et Microsoft StyleCop logiciel va vous donner des lignes directrices et de vérifier votre code afin que tout le monde fonctionne de la même manière.