Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Type.GetEnumValues() ใน C#

เมธอด Type.GetEnumValues() ใน C# คืนค่าอาร์เรย์ของค่าคงที่ในประเภทการนับ (enumeration) ปัจจุบัน

ไวยากรณ์

public virtual Array GetEnumValues ();

ตัวอย่าง

ตัวอย่างที่ 1: พยายามใช้กับ int (ไม่ใช่ enum - จะโยน ArgumentException)

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() to return the constant name = " + 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); 
        } 
    } 
}

ผลลัพธ์

Not an enum! System.ArgumentException

ตัวอย่างเพิ่มเติม

ตัวอย่างที่ 2: ใช้กับ enum Vehicle อย่างถูกต้อง

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("GetEnumName() to return the constant name = " + 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); 
        } 
    } 
}

ผลลัพธ์

GetEnumName() to return the constant name = System.String[] 
Enum Underlying type = System.Int32 
Values = Demo+Vehicle[] 
Listing constants .. Car Bus Bike Airplane