D'accord, cela peut sembler une question stupide, mais je suis assez nouveau dans tout cela. Je faisais un peu de lecture sur les énumérations et les trouvent très semblable à déclarer des constantes. Comment pourrais-je savoir quand utiliser une constante plutôt qu'une énumération ou vice versa. Quels sont certains des avantages de l'utilisation des énumérations? Je n'ai jamais utilisé avant. Je travaille avec c#.
Réponses
Trop de publicités?Utiliser les énumérations lorsque vous voulez définir une plage de valeurs que quelque chose peut être. La couleur en est un exemple évident comme:
public enum Colour
{
White,
Red,
Blue
}
Ou peut-être un ensemble de choses comme: (Exemple, je l'ai volé à partir d' ici que je suis paresseux)
[FlagsAttribute]
enum DistributedChannel
{
None = 0,
Transacted = 1,
Queued = 2,
Encrypted = 4,
Persisted = 16,
FaultTolerant = Transacted | Queued | Persisted
}
Les constantes doivent être d'une seule valeur, comme PI. Il n'y a pas une gamme de valeurs PI, il est juste à PI.
Ce qui manque dans les autres réponses, c'est que les énumérations ont un entier de type de base. Vous pouvez modifier la valeur par défaut de int pour tout autre type intégral, sauf char comme:
enum LongEnum : long {
foo,
bar,
}
Vous pouvez lancer explicitement à partir de et, implicitement, la le type de base, qui est utile dans le commutateur-états. Méfiez-vous que l'on peut mettre en valeur le type de base à un enum, même si l'énumération n'a pas de membre ayant la valeur la plus appropriée. Donc, en utilisant toujours la section par défaut dans un switch est une bonne idée. BTW, .NET permet même à virgule flottante apprécié des enums, mais vous ne pouvez pas définir en C#, mais je pense que vous pouvez toujours utiliser (à l'exception de l'interrupteur).
En outre, en utilisant les énumérations vous donne plus de sécurité. Si vous avez l'intention d'utiliser, par exemple, int constantes des paramètres de la méthode, alors je pourrais appeler la méthode avec tout int valeur. Accordé, par coulage, il peut arriver avec des enums, trop, mais il n'est pas produit par hasard. Le pire, c'est la possibilité de confondre l'ordre des paramètres.
void method(int a, int b) {...}
Si la constante A seulement peut aller dans une constante et B ne peut aller en b, puis en utilisant deux différents types enum va découvrir de toute utilisation abusive lors de la compilation.
Une constante est une fonctionnalité du langage qui dit que la variable ne change pas la valeur (de sorte que le compilateur peut faire des optimisations autour de la connaissance) où une énumération est un type spécifique.
Les constantes peuvent être n'importe quel type de données, mais un enum est un enum.
Je utiliser un enum tout endroit où vous pourriez avoir un certain nombre d'options et vous souhaitez améliorer la lisibilité du code. c'est à dire vous pourriez avoir des niveaux de trace comme un int avec des valeurs 0, 1, 2 ou comme un enum comme d'erreur, d'avertissement et d'info.
Enum ont également la possibilité d'être utilisé comme opérateurs au niveau du bit, c'est à dire FontStyle.Gras | FontStyle.Italique serait vous donner le gras et l'italique polices.
En plus de Robert de réponse:
Utiliser enum pour un ensemble fini de valeurs. Vous n'avez pas vraiment à la valeur numérique derrière chaque symbole (mais vous avez toujours la possibilité de les imposer, par exemple, pour la compatibilité avec un système d'héritage).
Robert: Oui, l'Enum peut être utilisé comme champs de bits. Utiliser les Drapeaux de l'attribut (et assurez-vous que les membres de l'enum sont des valeurs numériques).
A C# constant est similaire à une variable en ce qu'il donne un nom défini à une valeur. Toutefois, une constante se distingue d'une variable standard, car une fois définie, la valeur attribuée à la constante ne peut jamais être changé. Le principal avantage de constantes est leur assistance dans la création de l'auto-documentation du code ainsi que de permettre la déclaration de valeurs de clé dans un seul endroit, ce qui facilite l'entretien si la valeur doit être mise à jour et le logiciel recompilé.
Considérant que l'agent Recenseur listes sont utiles pour la définition des séquences et des états, en particulier lorsqu'il y a une progression naturelle par le biais de ces états. C'est parce que chaque constante dans la liste peut être mise en forme et comparées à l'aide de son nom ou de valeur. Un enum peut également être utilisé pour définir un ensemble limité de valeurs valides.