Je vais travailler seul sur un peu de code C#, mais je veux m'assurer que je respecte les conventions de dénomination les plus largement acceptées au cas où je voudrais faire appel à d'autres développeurs, publier mon code ou le vendre. Pour l'instant, je suis les conventions de dénomination établies par Microsoft, car elles semblent être les plus largement acceptées. La seule chose qu'ils ne mentionnent pas est le nommage des champs privés. La plupart du temps, je les ai vus nommés en majuscules comme les champs protégés, mais cela me pose un problème car les noms des paramètres doivent être en majuscules. Prenons l'exemple du constructeur suivant :
public GameItem(string baseName, string prefixName, string suffixName)
{
//initialize code
}
Si j'utilise également la casse camel pour les champs privés, il y a un conflit de nom, à moins que j'utilise "this" pour accéder aux champs de la classe (ce qui, à mon avis, va à l'encontre de la plupart des normes, sans compter qu'il faut taper davantage). Une solution consiste à donner un nom différent au paramètre, mais cela n'a pas de sens logique de donner deux noms différents à la même donnée. La seule autre solution que je connaisse et qui était courante dans le codage C++ est de donner aux membres privés un trait de soulignement au début (_camelCase). Cette solution est-elle communément acceptée dans le codage C# ? Existe-t-il une autre solution à ce problème (comme utiliser uniquement les propriétés (qui utilisent la PascalCase) pour accéder aux champs, même dans la classe elle-même) ?
2 votes
msdn.microsoft.com/fr/us/library/xzf533w0.aspx msdn.microsoft.com/fr/us/library/ms229045.aspx
9 votes
Choisissez-en un et soyez cohérent ! C'est ce qui compte...
4 votes
J'utilise "this" pour les champs privés.
0 votes
J'utilise soit
this
ou des propriétés publiques avecprotected set
et ceux-là ont la première lettre en majuscule. Regardez du côté de M$ FxCop si vous le pouvez.1 votes
Je commence à y réfléchir et il serait plus judicieux d'y accéder par les propriétés tout le temps. Les deux raisons pour lesquelles je pense cela sont les suivantes : 1. cohérence dans tout le code sur la façon d'accéder aux champs et 2. Si j'ai besoin d'ajouter un contrôle de validation, je devrai de toute façon modifier tout mon code pour utiliser les propriétés, alors autant le faire avant. Que pensez-vous de l'utilisation systématique des propriétés ?
0 votes
Eh bien, je ne les utilise pas tous Toujours pour l'accès public, la plupart du temps pour l'accès protégé, généralement pas pour l'accès privé. Vous pouvez facilement remanier vos champs privés. Vous ne pouvez pas simplement remanier un champ public en propriété publique, car lorsqu'une assemblée établit un lien avec le champ, elle cherchera un champ au lieu d'une propriété. Et vous ne pouvez pas facilement changer le comportement de l'accès au champ.