2010-10-03 5 views
2

Dans beaucoup de code généré automatiquement en Java, la pratique courante consiste à préfacer le nom des variables qui pourraient potentiellement entrer en conflit avec les variables utilisateur avec un signe dollar. Par convention, le code écrit manuellement n'utilise pas de signes dollar. Cependant, en C# ce caractère n'est pas valide dans les identifiants. Existe-t-il une pratique standard pour nommer les identifiants générés? Je les préfixe actuellement avec un double-underscore, que je crois est souvent utilisé en C.Convention de nommage pour les identifiants générés en C#

Parfois, vous voulez générer une super-classe avec certaines fonctionnalités, et permettre à la sous-classe de l'emballer dans un paquet soigné. C'est alors que cela s'appliquerait.

+0

Ne répond pas à votre question, mais avant d'aller trop loin dans ce chemin, vous devriez en apprendre davantage sur les classes partielles qui sont la solution C# pour gérer l'extensibilité du code généré: http://msdn.microsoft.com/fr us/library/wa80x488 (VS.80) .aspx –

+0

Vous ne devriez jamais préfixer les identifiants générés avec un double trait de soulignement en C. Cela peut être une pratique "courante", mais c'est très faux. Le double trait de soulignement est réservé à _implementation_ (par exemple pour les extensions de langue ou les identifiants privés dans les haders). –

+0

@Kirk: les classes partielles n'empêchent cependant pas les conflits de noms. Si un corps d'une classe partielle déclare une méthode avec une signature particulière, par exemple, aucun autre corps ne peut la redéfinir. Cela a plus à voir avec la séparation pratique des artefacts de construction. –

Répondre

2

Je ne suis pas sûr de ce que la convention norme est dans ce cas, mais depuis C# accepts Unicode characters in identifers, vous pouvez simplement choisir quelques caractères Unicode arbitraires pratiquement garantie qu'aucun nom ne conflit. Quelles sont les chances de toute variable commençant par ꉜꈅ ⣎, par exemple?

+0

C'est une bonne idée, je vais utiliser ça! – MikeAinOz

Questions connexes