Enum.GetValues Yöntem

Tanım

Aşırı Yüklemeler

GetValues(Type)

Belirtilen bir sabit listesi içindeki sabitlerin değerlerinin dizisini alır.

GetValues<TEnum>()

Belirtilen sabit listesi türündeki sabitlerin değerlerinin dizisini alır.

GetValues(Type)

Kaynak:
Enum.cs
Kaynak:
Enum.cs
Kaynak:
Enum.cs

Belirtilen bir sabit listesi içindeki sabitlerin değerlerinin dizisini alır.

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

Parametreler

enumType
Type

Bir numaralandırma türü.

Döndürülenler

içindeki enumTypesabitlerin değerlerini içeren bir dizi.

Öznitelikler

Özel durumlar

enumType, null değeridir.

enumType bir Enumdeğildir.

yöntemi yalnızca yansıma bağlamında yansıma tarafından çağrılır,

-veya-

enumType , yalnızca yansıma bağlamında yüklenen bir derlemeden türdür.

.NET 8 ve sonraki sürümleri: enumType Boole destekli bir numaralandırma türüdür.

Örnekler

Aşağıdaki örnekte kullanımı gösterilmektedir 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

Açıklamalar

Dizinin öğeleri, numaralandırma sabitlerinin ikili değerlerine (yani işaretsiz büyüklüklerine göre) göre sıralanır. Aşağıdaki örnekte negatif değer, sıfır ve pozitif bir değer içeren bir sabit listesi için yöntemi tarafından GetValues döndürülen dizi hakkındaki bilgiler görüntülenir.

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

yöntemi, GetValues numaralandırmanın her üyesi enumType için bir değer içeren bir dizi döndürür. Birden çok üye aynı değere sahipse, döndürülen dizi yinelenen değerler içerir. Bu durumda, döndürülen dizideki her değerle yöntemini çağırmak GetName , yinelenen değerlere sahip üyelere atanan benzersiz adları geri yüklemez. Numaralandırma üyelerinin tüm adlarını başarıyla almak için yöntemini çağırın GetNames .

GetValues yöntemi yalnızca yansıma bağlamında yansıma kullanılarak çağrılamaz. Bunun yerine, numaralandırma üyelerini temsil eden bir nesne dizisi FieldInfo almak ve ardından dizinin her öğesinde yöntemini çağırmak FieldInfo.GetRawConstantValue için yöntemini kullanarak Type.GetFields tüm numaralandırma üyelerinin değerini alabilirsiniz. Aşağıdaki örnekte bu teknik gösterilmektedir. Enumerations.dll adlı bir derlemede aşağıdaki numaralandırmayı tanımlamanız gerekir:

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

Derleme yalnızca yansıma bağlamında yüklenir, numaralandırmayı Pets temsil eden bir Type nesne örneği oluşturulur, bir nesne dizisi FieldInfo alınır ve alan değerleri konsolda görüntülenir.

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

Şunlara uygulanır

.NET 10 ve diğer sürümler
Ürün Sürümler
.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>()

Kaynak:
Enum.cs
Kaynak:
Enum.cs
Kaynak:
Enum.cs

Belirtilen sabit listesi türündeki sabitlerin değerlerinin dizisini alır.

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

Tür Parametreleri

TEnum

Numaralandırmanın türü.

Döndürülenler

TEnum[]

içindeki TEnumsabitlerin değerlerini içeren bir dizi.

Özel durumlar

.NET 8 ve sonraki sürümleri: TEnum Boole destekli bir numaralandırma türüdür.

Şunlara uygulanır

.NET 10 ve diğer sürümler
Ürün Sürümler
.NET 5, 6, 7, 8, 9, 10