Enum.GetValues Metoda

Definice

Přetížení

GetValues(Type)

Načte pole hodnot konstant v zadaném výčtu.

GetValues<TEnum>()

Načte pole hodnot konstant v zadaném typu výčtu.

GetValues(Type)

Zdroj:
Enum.cs
Zdroj:
Enum.cs
Zdroj:
Enum.cs

Načte pole hodnot konstant v zadaném výčtu.

C#
public static Array GetValues(Type enumType);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static Array GetValues(Type enumType);

Parametry

enumType
Type

Typ výčtu

Návraty

Pole, které obsahuje hodnoty konstant v enumType.

Atributy

Výjimky

enumType je null.

enumTypenení .Enum

Metoda je vyvolána reflexí v kontextu jen pro reflexi.

-nebo-

enumType je typ ze sestavení načteného v kontextu jen pro reflexi.

.NET 8 a novější verze: enumType je typ výčtu s logickým využitím.

Příklady

Následující příklad ukazuje použití .GetValues

C#
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

Poznámky

Prvky pole jsou seřazeny podle binárních hodnot konstant výčtu (to znamená podle jejich nepodepsané velikosti). Následující příklad zobrazí informace o poli vrácené metodou GetValues pro výčet, který obsahuje zápornou hodnotu, nulu a kladnou hodnotu.

C#
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

Metoda GetValues vrátí pole, které obsahuje hodnotu pro každý člen výčtu enumType . Pokud má více členů stejnou hodnotu, vrácené pole obsahuje duplicitní hodnoty. V tomto případě volání GetName metody s každou hodnotou ve vrácené matici neobnoví jedinečné názvy přiřazené členům, kteří mají duplicitní hodnoty. Chcete-li úspěšně načíst všechny názvy členů výčtu, zavolejte metodu GetNames .

Metodu GetValues nelze vyvolat pomocí reflexe v kontextu jen pro reflexi. Místo toho můžete načíst hodnotu všech členů výčtu Type.GetFields pomocí metody získat pole FieldInfo objektů, které představují členy výčtu a poté volat metodu FieldInfo.GetRawConstantValue pro každý prvek pole. Následující příklad znázorňuje tuto techniku. Vyžaduje, abyste v sestavení s názvem Enumerations.dll definovali následující výčet:

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

Sestavení je načteno v kontextu pouze reflexe, je vytvořena instance objektuPets, Type který představuje výčet, pole FieldInfo objektů je načteno a hodnoty polí jsou zobrazeny v konzole nástroje .

C#
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

Platí pro

.NET 10 a další verze
Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetValues<TEnum>()

Zdroj:
Enum.cs
Zdroj:
Enum.cs
Zdroj:
Enum.cs

Načte pole hodnot konstant v zadaném typu výčtu.

C#
public static TEnum[] GetValues<TEnum>() where TEnum : struct;

Parametry typu

TEnum

Typ výčtu.

Návraty

TEnum[]

Pole, které obsahuje hodnoty konstant v TEnum.

Výjimky

.NET 8 a novější verze: TEnum je typ výčtu s logickým využitím.

Platí pro

.NET 10 a další verze
Produkt Verze
.NET 5, 6, 7, 8, 9, 10