Je sais que console.foregroundColor prend enum un paramètre ConsoleColor enum. Ce que je ne comprends pas, c'est pourquoi - je suppose que ce sont des chaînes de caractères, donc quand console.foreground le recevra comme argument, il utilisera une sorte de commutateur basé sur ces constantes. Est ce bien? Ou y a-t-il quelque chose que j'ai manqué?ConsoleColor enum question
Répondre
Enum a des valeurs entières et les valeurs réelles de ConsoleColor sont 0, 1, 2, 3 et ainsi de suite. De plus, comme leppie indique les valeurs de ConsoleColor réellement mappées aux valeurs de couleur natives. Dans la valeur de couleur native de la console - Les valeurs de premier plan sont placées dans les quatre bits inférieurs alors que les valeurs de l'arrière-plan vont dans les quatre bits supérieurs. Enum fournit une facilité d'utilisation et, par conséquent, la bibliothèque de frameworks a enveloppé les couleurs de console enum.
La console ne prend en charge que 16 couleurs. Je peux seulement supposer que l'énumération est directement mappée aux constantes natives, donc elle ne nécessite pas de commutateur.
Oui, mais s'il pouvait prendre une chaîne (comme "Black") en paramètre, ce serait la même chose, n'est-ce pas? Je veux dire, si enum ne contient que la liste des éléments, alors console.foreground doit être en quelque sorte distinct ce qui signifie quoi. – Ptr
@Ptr, voir ma réponse. Comme le fait remarquer Leppie, en tant que valeur enum réelle correspond à la constante native, il n'y a pas besoin d'une instruction switch. Les énumérations sont des constantes d'entiers nommés sécurisés. – VinayC
- 1. enum ConsoleColor - est ce type?
- 2. facile C ENUM question
- 3. Question sur Rechercher membre Enum en C#
- 4. Morte Simple Java IO & Enum Question
- 5. Carte Enum [Flags] Enum
- 6. Javascript ENUM dans un ENUM
- 7. passez enum enum to method.invoke java
- 8. classes enum (ou quelque chose comme enum)
- 9. Enum Naming Convention - Pluriel
- 10. Java Enums find enum
- 11. Mappage Enum from String
- 12. typedef enum
- 13. Élargir enum
- 14. C# Enum Fonction Paramètres
- 15. Itration sur enum?
- 16. Créer un équivalent enum ou enum qui renvoie une chaîne (enum returns int) dans .NET
- 17. Enum Nom chaîne de valeur
- 18. fonction avec Redéfinition ENUM/int
- 19. Renvoie le nombre de valeurs enum. (Taille de Enum typedef)
- 20. C# Enum pointant vers un autre Enum (refactoring)
- 21. Comment imbriquer un Enum dans la valeur d'un Enum
- 22. Java obtenant le nom Enum donné la valeur Enum
- 23. affaires ENUM à la conversion DatContract Enum dans WCF
- 24. membres enum de type Int32
- 25. opérations Bit sur Enum
- 26. NHibernate MySQL Enum
- 27. Désignation d'inclusion/exclusion enum
- 28. abstract java enum
- 29. C#: Enum anti-patterns
- 30. Fake enum en C#
Je ne comprends pas ce que vous voulez dire "mappé aux couleurs natives". Si chaque élément a son type intergral (son équivalent?), Alors qu'est-ce que ce mapping? – Ptr
Par exemple, la valeur de ConsolColor.DarkBlue est 1 et la valeur correspondante de constante (dans l'API Windows) FOREGROUND_BLUE est également 1. Voir http://msdn.microsoft.com/en-us/library/ms682093(VS.85). aspx et http://msdn.microsoft.com/en-us/library/ms682088(v=VS.85).aspx#_win32_character_attributes pour comprendre les structures win api qui sont impliquées ici. – VinayC