Baca dalam bahasa Inggris

Bagikan melalui


Enum.GetValues Metode

Definisi

Overload

GetValues(Type)

Mengambil array nilai konstanta dalam enumerasi tertentu.

GetValues<TEnum>()

Mengambil array nilai konstanta dalam jenis enumerasi tertentu.

GetValues(Type)

Sumber:
Enum.cs
Sumber:
Enum.cs
Sumber:
Enum.cs

Mengambil array nilai konstanta dalam enumerasi tertentu.

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

Parameter

enumType
Type

Jenis enumerasi.

Mengembalikan

Array yang berisi nilai konstanta di enumType.

Atribut

Pengecualian

enumTypeadalah null.

enumTypebukan .Enum

Metode ini dipanggil oleh refleksi dalam konteks khusus refleksi,

-atau-

enumType adalah jenis dari rakitan yang dimuat dalam konteks khusus refleksi.

.NET 8 dan versi yang lebih baru: enumType adalah jenis enumerasi yang didukung Boolean.

Contoh

Contoh berikut mengilustrasikan penggunaan 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

Keterangan

Elemen array diurutkan berdasarkan nilai biner dari konstanta enumerasi (yaitu, berdasarkan besarannya yang tidak ditandatangani). Contoh berikut menampilkan informasi tentang array yang dikembalikan oleh GetValues metode untuk enumerasi yang menyertakan nilai negatif, nol, dan nilai positif.

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

Metode GetValues mengembalikan array yang berisi nilai untuk setiap anggota enumType enumerasi. Jika beberapa anggota memiliki nilai yang sama, array yang dikembalikan menyertakan nilai duplikat. Dalam hal ini, memanggil GetName metode dengan setiap nilai dalam array yang dikembalikan tidak memulihkan nama unik yang ditetapkan kepada anggota yang memiliki nilai duplikat. Untuk mengambil semua nama anggota enumerasi dengan sukses, panggil GetNames metode .

Metode GetValues tidak dapat dipanggil dengan menggunakan pantulan dalam konteks khusus refleksi. Sebagai gantinya, Anda dapat mengambil nilai semua anggota enumerasi dengan menggunakan Type.GetFields metode untuk mendapatkan array FieldInfo objek yang mewakili anggota enumerasi lalu memanggil FieldInfo.GetRawConstantValue metode pada setiap elemen array. Contoh berikut menggambarkan teknik ini. Ini mengharuskan Anda menentukan enumerasi berikut dalam rakitan bernama Enumerations.dll:

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

Rakitan dimuat dalam konteks khusus refleksi, Type objek yang mewakili Pets enumerasi dibuat, array FieldInfo objek diambil, dan nilai bidang ditampilkan ke konsol.

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

Berlaku untuk

GetValues<TEnum>()

Sumber:
Enum.cs
Sumber:
Enum.cs
Sumber:
Enum.cs

Mengambil array nilai konstanta dalam jenis enumerasi tertentu.

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

Jenis parameter

TEnum

Jenis enumerasi.

Mengembalikan

TEnum[]

Array yang berisi nilai konstanta di TEnum.

Pengecualian

.NET 8 dan versi yang lebih baru: TEnum adalah jenis enumerasi yang didukung Boolean.

Berlaku untuk