Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Lấy mảng giá trị hằng số của enum type trong C#

Để lấy mảng các giá trị hằng số của kiểu enum hiện tại, ta dùng Type.GetEnumValues. Dưới đây là các ví dụ.

Ví dụ 1

using System;

public class Demo {
    enum Vehicle {Car, Bus, Bike, Airplane}
    
    public static void Main() {
        try {
            Type type = typeof(int);
            string[] str = type.GetEnumNames();
            Console.WriteLine("GetEnumNames() = " + str);
            
            Type type2 = type.GetEnumUnderlyingType();
            Console.Write("Enum Underlying type = " + type2);
            
            Array arrObj = type.GetEnumValues();
            Console.Write("Values = {0}" + arrObj);
            
            Console.WriteLine("\nListing constants ..");
            for (int i = 0; i < str.Length; i++)
                Console.Write("{0} ", str[i]);
        }
        catch (ArgumentException e) {
            Console.WriteLine("Not an enum!");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

Kết quả

Not an enum!
System.ArgumentException

Ví dụ 2

using System;

public class Demo {
    enum Vehicle {Car, Bus, Bike, Airplane}
    
    public static void Main() {
        try {
            Vehicle v = Vehicle.Bike;
            Type type = v.GetType();
            
            string[] str = type.GetEnumNames();
            Console.WriteLine("GetEnumNames() = " + str);
            
            Type type2 = type.GetEnumUnderlyingType();
            Console.Write("Enum Underlying type = " + type2);
            
            Array arrObj = type.GetEnumValues();
            Console.Write("Values = " + arrObj);
            
            Console.WriteLine("\nListing constants ..");
            for (int i = 0; i < str.Length; i++)
                Console.Write("{0} ", str[i]);
        }
        catch (ArgumentException e) {
            Console.WriteLine("Not an enum!");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

Kết quả

GetEnumNames() = System.String[]
Enum Underlying type = System.Int32
Values = Demo+Vehicle[]
Listing constants ..
Car Bus Bike Airplane