Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Enum.GetValues méthode (Type)

 

Date de publication : novembre 2016

Récupère un tableau des valeurs des constantes dans une énumération spécifiée.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

[ComVisibleAttribute(true)]
public static Array GetValues(
	Type enumType
)

Paramètres

enumType
Type: System.Type

Type énumération.

Valeur de retour

Type: System.Array

Tableau qui contient les valeurs des constantes dans enumType.

Exception Condition
ArgumentNullException

enumType a la valeur null.

ArgumentException

enumType n'est pas Enum.

InvalidOperationException

La méthode est appelée par réflexion dans un contexte de réflexion uniquement

ou

enumType est un type issu d’un assembly chargé dans un contexte de réflexion uniquement.

Les éléments du tableau sont triés par les valeurs binaires des constantes d’énumération (autrement dit, par leur grandeur non signé). L’exemple suivant affiche des informations sur le tableau retourné par la GetValues méthode pour une énumération qui contient une valeur négative, zéro et une valeur positive.

using System;

enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 };

public class Example
{
   public static void Main()
   {
      foreach (var value in Enum.GetValues(typeof(SignMagnitude))) {
         Console.WriteLine("{0,3}     0x{0:X8}     {1}",
                           (int) value, ((SignMagnitude) value));
}   }
}
// The example displays the following output:
//         0     0x00000000     Zero
//         1     0x00000001     Positive
//        -1     0xFFFFFFFF     Negative

Le GetValues méthode retourne un tableau qui contient une valeur pour chaque membre de la enumType énumération. Si plusieurs membres ont la même valeur, le tableau retourné inclut des valeurs en double. Dans ce cas, en appelant le GetName méthode avec chaque valeur dans le tableau retourné ne restaure pas les noms uniques attribuées aux membres qui ont des valeurs en double. Pour récupérer les noms des membres de l’énumération avec succès, appelez le GetNames (méthode).

LeGetValues méthode ne peut pas être appelée à l’aide de la réflexion dans un contexte de réflexion uniquement. Au lieu de cela, vous pouvez récupérer la valeur de tous les membres de l’énumération à l’aide de la Type.GetFields méthode pour obtenir un tableau de FieldInfo les objets qui représentent les membres de l’énumération, puis appellent le FieldInfo.GetRawConstantValue méthode sur chaque élément du tableau. L’exemple suivant illustre cette technique. Il requiert que vous définissez l’énumération suivante dans un assembly nommé Enumerations.dll :

[Flags] enum Pets { None=0, Dog=1, Cat=2, Rodent=4, Bird=8, 
                    Fish=16, Reptile=32, Other=64 };

L’assembly est chargé dans un contexte de réflexion uniquement, un Type objet qui représente le Pets énumération est instanciée, un tableau de FieldInfo objets est récupérée, et les valeurs de champ sont affichées dans la console.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      Assembly assem = Assembly.ReflectionOnlyLoadFrom(@".\Enumerations.dll");
      Type typ = assem.GetType("Pets");
      FieldInfo[] fields = typ.GetFields();

      foreach (var field in fields) {
         if (field.Name.Equals("value__")) continue;

         Console.WriteLine("{0,-9} {1}", field.Name + ":", 
                                         field.GetRawConstantValue());
      }
   }
}
// The example displays the following output:
//       None:     0
//       Dog:      1
//       Cat:      2
//       Rodent:   4
//       Bird:     8
//       Fish:     16
//       Reptile:  32
//       Other:    64

L’exemple suivant illustre l’utilisation de GetValues.

using System;

public class GetValuesTest {
    enum Colors { Red, Green, Blue, Yellow };
    enum Styles { Plaid = 0, Striped = 23, Tartan = 65, Corduroy = 78 };

    public static void Main() {

        Console.WriteLine("The values of the Colors Enum are:");
        foreach(int i in Enum.GetValues(typeof(Colors)))
            Console.WriteLine(i);

        Console.WriteLine();

        Console.WriteLine("The values of the Styles Enum are:");
        foreach(int i in Enum.GetValues(typeof(Styles)))
            Console.WriteLine(i);
    }
}
// The example produces the following output:
//       The values of the Colors Enum are:
//       0
//       1
//       2
//       3
//       
//       The values of the Styles Enum are:
//       0
//       23
//       65
//       78

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 5.0
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: