Différence entre Enum.GetValues et Enum.GetNames
Je vois le Enum.GetValues
renvoie base Array
type et Enum.GetNames
renvoie une string
tableau. Mais je ne comprends pas comment ce qui est très significatif. Pour un enum
de toute façon, les valeurs sont des chaînes de caractères.
Mais, il y a un problème. Le DataGridView
ComboBox
colonne databinds à un enum
si je donne le DataSource
= Enum.GetValues
mais il n'a pas databind quand je lui donne Enum.GetNames
comme un DataSource
.
source d'informationauteur Everything Matters
Vous devez vous connecter pour publier un commentaire.
GetValues retournera un Tableau de la valeur sous-jacente de chaque élément de l'énumération.
Getnames a retourne une chaîne de caractères tableau des Noms pour les éléments de l'énumération.
Le Tableau retourné par GetValues implémente IList tandis que le string[] renvoyé par getnames a ne prend pas, ce qui explique les différences contraignantes.
Les énumérations sont en réalité numérique.
GetNames
renvoie les noms de champ.GetValues
retourne les valeurs numériques.MSDN a un grand échantillon sur
GetValues
.Penser à des énumérations comme des paires Nom/Valeur.
Dans l'exemple ci-dessus,
GetNames()
sera de retour d'unestring
tableau contenant les éléments "Négatifs", "Zéro", et "Positive".GetValues()
retournera un tableau deSignMagnitude
contenantSignMagnitude.Negative
SignMagnitude.Zero
etSignMagnitude.One
.Il est un exemple de liaison Enum noms à une liste déroulante dans un DataGridView ici: Créer la liste déroulante options de enum dans un DataGridView