Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Enum.GetValues, méthode

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.

ExceptionCondition
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 provenant 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 taille non signé). L'exemple suivant affiche des informations sur le tableau retourné par la méthode GetValues pour une énumération qui inclut 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


La méthode GetValues retourne un tableau contenant une valeur pour chaque membre de l'énumération à enumType. Si plusieurs membres ont la même valeur, le tableau retourné inclut des valeurs dupliquées. Dans ce cas, appelant la méthode GetName à chaque valeur dans le tableau retourné ne restaure pas les noms uniques assignés aux membres présentant des valeurs dupliquées. Pour récupérer tous les noms des membres de l'énumération avec succès, appelez la méthode GetNames.

La méthode GetValues ne peut pas être appelée en utilisant la réflexion dans un contexte de réflexion uniquement. À la place, vous pouvez récupérer la valeur de tous les membres d'énumération en utilisant la méthode Type.GetFields pour obtenir un tableau d'objets d'FieldInfo qui représentent les membres de l'énumération puis appelle la méthode FieldInfo.GetRawConstantValue sur chaque élément du tableau. L'exemple suivant illustre cette technique. Il nécessite que vous définissiez 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 ReflectionOnly, un objet Type qui représente l'énumération d'un Pets est instancié, un tableau d'objets d'FieldInfo est extrait, 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


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft