Une variable enum, quelqu'un sait s'il est toujours par défaut au premier élément?quelle est la valeur par défaut de la variable enum
Répondre
C'est le membre de l'énumération qui représente la valeur 0
. Plus précisément, à partir de la documentation:
La valeur par défaut d'un
enum E
est la valeur produite par l'expression(E)0
.
À titre d'exemple, prendre la ENUM suivante:
enum E
{
Foo, Bar, Baz, Quux
}
sans écraser les valeurs par défaut, l'impression default(E)
retours Foo
car il est l'élément apparaissant en premier.
Cependant, il est pas toujours le cas où 0
d'une énumération est représenté par le premier membre. Par exemple, si vous faites ceci:
enum F
{
// Give each element a custom value
Foo = 1, Bar = 2, Baz = 3, Quux = 0
}
impression default(F)
vous donnera Quux
, non Foo
.
Si aucun des éléments dans un ENUM G
correspondent à 0
:
enum G
{
Foo = 1, Bar = 2, Baz = 3, Quux = 4
}
default(G)
retours littéralement 0
, bien que son type demeure G
(cité par les ci-dessus docs, un casting de type ENUM donné).
Merci, et qu'en est-il des enums définis avec char au lieu de int. par exemple. enum Statut {Actif = 'A', Inactif = 'I'} –
@Fernando Torres: Toujours 0, sauf si l'une de vos valeurs enum correspond à ''\ 0'' ou' default (char) ', ce qui est hautement improbable depuis 'default (char)' est le caractère NUL qui correspond au code char 0. – BoltClock
I (incorrectement?) supposait que l'utilisation de l'attribut 'DefaultValue' - quelque chose comme' System.ComponentModel.DefaultValue (MyEnum.Blah) '--would modifier le comportement de 'default (MyEnum)' mais il donne encore 0. N'y a-t-il aucun moyen de créer une abstraction pour un 'enum' autour de sa valeur par défaut? –
Je pense qu'il est assez dangereux de se fier à l'ordre des valeurs dans une énumération et de supposer que la première est toujours la valeur par défaut. Ce serait une bonne pratique si vous êtes préoccupé par la protection de la valeur par défaut.
enum E
{
Foo = 0, Bar, Baz, Quux
}
Sinon, il suffit d'un refactoring négligent de l'ordre et vous avez un défaut complètement différent.
- 1. Quelle est la valeur de configuration git core.askpass par défaut?
- 2. Quelle est la valeur par défaut pour un champ si aucune valeur par défaut n'est fournie?
- 3. Quelle est la valeur initiale par défaut d'une chaîne Java?
- 4. Quelle est la valeur par défaut d'android: vmSafeMode?
- 5. C++ QListe dans if, quelle est la valeur par défaut?
- 6. La liste des Grails est remplacée par l'index, quelle est la valeur par défaut?
- 7. Valeur par défaut pour la variable booléenne statique
- 8. Quelle est la taille par défaut de wizardfomr?
- 9. Quelle est la couleur par défaut de TextBlock.Foreground?
- 10. Quelle est la manière la plus simple de remplacer la valeur par défaut d'une propriété Delphi?
- 11. Quelle valeur sera insérée lorsque DataColumn est AllowDBNull et que la valeur par défaut est "0"?
- 12. setWebContentsDebuggingEnabled - La valeur par défaut est false
- 13. Quelle est la valeur par défaut correcte pour un argument de référence de valeur r?
- 14. Lors de la validation d'un type de plugin dans Ave, quelle est la valeur par défaut?
- 15. par défaut PostgreSQL enum ne
- 16. Quelle est la différence entre la validation nonobstrusive et la valeur par défaut fournie dans mvc3
- 17. quelle est la valeur retournée par this.id?
- 18. Quelle est la police par défaut utilisée par flex?
- 19. Quelle est la valeur par défaut pour la priorité de test lorsque PriorityAttribute n'est pas défini?
- 20. Quelle est la valeur par défaut du contexte (dernier paramètre) dans la fonction "on" de Backbone.js?
- 21. Quelle est la valeur par défaut pour les membres de la classe C++
- 22. est variable instance de Enum
- 23. Quelle est la largeur par défaut d'un composant UIPickerView?
- 24. Quelle est la signification de la déclaration Enum de Java?
- 25. Comment remplacer la valeur int par la valeur enum
- 26. Comment savoir quelle page est la page par défaut?
- 27. Retrieve SUM (chiffre) par la valeur ENUM
- 28. Comment définir une variable à la valeur par défaut?
- 29. Comment définir la valeur par défaut d'une variable en C#?
- 30. Quelle est la configuration par défaut de PHP?
Une considération pour le cas d'utilisation où une énumération par défaut est souhaitée est d'utiliser une variable nullable. Quand une valeur nulle est reçue, elle peut être traduite dans la partie correcte du code dans la valeur par défaut, et cette valeur par défaut n'a pas à être connue dans le reste du code (qui passe juste le long d'une valeur nulle). – ErikE