Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Type.GetEnumUnderlyingType() मेथड

विवरण

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 सिंटैक्स के साथ कस्टम प्रकार निर्दिष्ट करें।
  • सीरियलाइज़ेशन, इंटरऑप, या बिटवाइज़ ऑपरेशंस के लिए उपयोगी।
  1. - C# में Type.GetDefaultMembers() मेथड

    C# में Type.GetDefaultMembers() मेथड का उपयोग वर्तमान Type के लिए परिभाषित उन सदस्यों को खोजने के लिए किया जाता है जिनका DefaultMemberAttribute सेट है। सिंटैक्स public virtual System.Reflection.MemberInfo[] GetDefaultMembers (); आइए Type.GetDefaultMembers() मेथड को लागू करने का एक उदाहरण देखते हैं

  1. - C# में Type.GetArrayRank() मेथड

    C# में Type.GetArrayRank() मेथड एक सरणी में आयामों की संख्या प्राप्त करता है। सिंटैक्स public virtual int GetArrayRank (); आइए Type.GetArrayRank() मेथड को लागू करने का एक उदाहरण देखते हैं - उदाहरण using System; public class Demo { public static void Main(string[] args) { Type type =

  1. - C# में Type.Equals() मेथड

    C# में Type.Equals() मेथड यह निर्धारित करता है कि वर्तमान Type का अंतर्निहित सिस्टम प्रकार निर्दिष्ट ऑब्जेक्ट या Type के अंतर्निहित सिस्टम प्रकार के समान है या नहीं। सिंटैक्स public virtual bool Equals (Type o); public override bool Equals (object o); ऊपर, पैरामीटर वे ऑब्जेक्ट हैं जिनके अंतर्निहित