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

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

เมธอด Type.GetEnumUnderlyingType() ใน C# ใช้คืนค่าประเภทพื้นฐาน (underlying type) ของประเภทการนับ (enumeration) ปัจจุบัน

ไวยากรณ์

public virtual Type GetEnumUnderlyingType ();

ตัวอย่าง

ตัวอย่างที่ 1: ดึง underlying type ของ 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); 
            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 
Listing constants .. Car Bus Bike Airplane

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

ตัวอย่างที่ 2: พยายามใช้กับ 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("GetEnumName() to return the constant name = " + str); 
            Type type2 = type.GetEnumUnderlyingType(); 
            Console.Write("Enum Underlying type = " + type2); 
            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