विवरण
Type.GetEnumUnderlyingType() मेथड वर्तमान एन्यूमरेशन प्रकार के अंतर्निहित (underlying) प्रकार को लौटाता है। प्रत्येक एनम का एक अंतर्निहित इंटीग्रल प्रकार होता है: byte, sbyte, short, ushort, int (डिफ़ॉल्ट), uint, long, या ulong।
सिंटैक्स
public virtual Type GetEnumUnderlyingType();
उदाहरण 1: डिफ़ॉल्ट एनम (int अंतर्निहित)
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("एनम अंतर्निहित प्रकार = " + type2);
Console.WriteLine("\nकॉन्स्टेंट्स सूचीबद्ध...");
for (int i = 0; i < str.Length; i++)
Console.Write("{0} ", str[i]);
}
catch (ArgumentException e) {
Console.WriteLine("एनम नहीं!");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
आउटपुट
GetEnumNames() = System.String[]
एनम अंतर्निहित प्रकार = System.Int32
कॉन्स्टेंट्स सूचीबद्ध...
Car Bus Bike Airplane
उदाहरण 2: गैर-एनम प्रकार पर त्रुटि
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("एनम अंतर्निहित प्रकार = " + type2);
Console.WriteLine("\nकॉन्स्टेंट्स सूचीबद्ध...");
for (int i = 0; i < str.Length; i++)
Console.Write("{0} ", str[i]);
}
catch (ArgumentException e) {
Console.WriteLine("एनम नहीं!");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
आउटपुट
एनम नहीं! System.ArgumentException
कस्टम अंतर्निहित प्रकार वाला एनम
enum Flags : byte { None = 0, Read = 1, Write = 2, Execute = 4 }
enum LargeEnum : long { Min = long.MinValue, Max = long.MaxValue }
// जांच
Console.WriteLine(typeof(Flags).GetEnumUnderlyingType()); // System.Byte
Console.WriteLine(typeof(LargeEnum).GetEnumUnderlyingType()); // System.Int64
मुख्य बिंदु
- केवल एनम प्रकारों पर मान्य; अन्यथा
ArgumentException। - डिफ़ॉल्ट अंतर्निहित प्रकार
int(System.Int32) है। - एनम घोषणा में
enum Name : Typeसिंटैक्स के साथ कस्टम प्रकार निर्दिष्ट करें। - सीरियलाइज़ेशन, इंटरऑप, या बिटवाइज़ ऑपरेशंस के लिए उपयोगी।