J'ai une pitchèse ENUM et une hauteur de classe, les deux naturellement pour moi devraient être nommées comme telles, mais il est confus d'avoir à la fois avec le même nom. Existe-t-il des directives pour le moment où un nom d'Enum s'afframe avec un type de classe?
Exemple: p>
public enum Pitch { Fastball, Sinker, Curveball } public class Pitch { }
5 Réponses :
Utilisez des espaces de noms pour les regrouper logiquement. Pour le cadre, le nom de la classe est le nom complet, qui peut être musicplayer.notes.pitch code> et non seulement
pitch code>. Les classes dans différents espaces de noms ne peuvent donc pas s'affronter. P>
L'utilisation de l'utilisation de l'utilisation de la différence.
@ Okuma.scott: le à l'aide de code> est à propos de la gestion des ressources déterministes, le confondez-vous avec le
en utilisant code> directive i>? Dans ce cas, vous devrez simplement qualifier complètement les noms de type lorsqu'il est utilisé si vous finissez par
en utilisant code> les deux espaces de noms. Et si vous aliasez un type à un nom déjà existant, eh bien, c'est votre problème entièrement.
Merci pour la correction - l'utilisation de la directive i> est ce que je voulais dire.
Nom Le taux de pitchtype enum, pitchkind, pitchmagnitude, pitchqualité, pitchshape, pitchspeed, ligzure ou tout ce qui convient le mieux.
Une autre considération est de savoir si la conception de la classe pourrait être améliorée. Au lieu d'avoir une propriété PitchType à l'intérieur de la classe de classe, vous pouvez également créer une hiérarchie de classe: p>
Que diriez-vous de PitchType? Quelqu'un peut-il penser à un meilleur mot que de type cependant, car cela a une signification dans le runtime lui-même?
Pitch Public Enum {Fastball, Curve Ball, Blapeur}
Autres noms pour l'Enum: ActionPitch, EventPitch
Incorporer l'énumé dans la classe: Vous pouvez ensuite y accéder via la classe: p>
J'y ai pensé, mais cela violerait-il une certaine convention de OO que je ne peux pas penser? Fait en sorte que l'on passe à travers le niveau supplémentaire de nommage juste pour faire face à un affrontement signifie qu'il est toujours bon design?
Je ne vois pas de problèmes ici. Mais l'énum doit de préférence être intégrée dans la classe dans laquelle elle sera utilisée ou au moins elle devrait avoir une relation logique forte.
Voir Stackoverflow Question Avantages et inconvénients d'utilisation de classes C ++ imbriquées et énumérations? .
Lorsqu'un énumé n'est pas incorporé dans une classe, assurez-vous d'utiliser un nom différent avant l'étiquette afin d'empêcher les affrontements de nom. Vous pouvez également utiliser des espaces de noms comme suggéré par Joey. P>
public class Pitch { public enum Enum { Fastball, Curveball, Sinker } } Pitch.Enum.Fastball
Si vous avez deux types que vous souhaitez nommer le même, il y a probablement un problème avec votre conception. Pouvez-vous nous montrer le code de la classe et de l'énum?