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

C# में वर्तमान Type के निर्दिष्ट सदस्य प्राप्त करना

परिचय

रिफ्लेक्शन का उपयोग करके किसी टाइप के सदस्यों (फील्ड्स, मेथड्स, प्रॉपर्टीज़ आदि) को रनटाइम पर प्राप्त किया जा सकता है। Type.GetMember(string) और Type.GetField(string) मेथड्स इसका उपयोग करते हैं।

उदाहरण 1: डिफ़ॉल्ट बाइंडिंग फ्लैग्स के साथ

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        try {
            FieldInfo fieldInfo = type.GetField("SubName");
            MemberInfo[] info = type.GetMember("SubName");

            Console.Write("सदस्य = ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);

            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public string SubName = "Science";
}

आउटपुट

सदस्य = 
System.String SubName
FieldInfo = System.String SubName

उदाहरण 2: बाइंडिंग फ्लैग्स निर्दिष्ट करके

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        try {
            FieldInfo fieldInfo = type.GetField("SubName");
            MemberInfo[] info = type.GetMember("SubName", BindingFlags.Public | BindingFlags.Instance);

            Console.Write("सदस्य = ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);

            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public string SubName = "Science";
}

आउटपुट

सदस्य = System.String SubName
FieldInfo = System.String SubName

मुख्य बिंदु

  • GetMember सभी सदस्य प्रकारों (फील्ड, मेथड, प्रॉपर्टी, आदि) को लौटाता है।
  • GetField केवल फील्ड्स को लक्षित करता है।
  • BindingFlags खोज को फ़िल्टर करता है (Public, Instance, Static, NonPublic, आदि)।
  1. - C# में वर्तमान एन्यूमरेशन प्रकार के सदस्यों के नाम प्राप्त करें

    Type.GetEnumNames() मेथड एन्यूमरेशन स्थिरांक के नामों का एक सरणी लौटाता है। यह केवल एनम प्रकारों पर काम करता है; अन्यथा ArgumentException फेंकता है। उदाहरण 1: गैर-एनम प्रकार (string) using System; public class Demo { enum Vehicle { Car, Bus, Bike } public static void Main() { tr

  1. - C# में वर्तमान इंस्टेंस का प्रकार प्राप्त करें

    C# में किसी ऑब्जेक्ट के वर्तमान इंस्टेंस का प्रकार प्राप्त करने के लिए, हम GetType() मेथड का उपयोग करते हैं। यह मेथड System.Object से विरासत में मिला है और ऑब्जेक्ट के रनटाइम प्रकार को दर्शाने वाला Type ऑब्जेक्ट लौटाता है। यह रिफ्लेक्शन और डिबगिंग के लिए उपयोगी है। उदाहरण 1: स्ट्रिंग का प्रकार प्र

  1. - C# में Enum.GetType(): एन्यूमरेशन का प्रकार प्राप्त करना

    GetType() मेथड किसी भी ऑब्जेक्ट का रनटाइम टाइप लौटाता है। एनम मानों पर उपयोग करके उनका एन्यूमरेशन टाइप और अंतर्निहित टाइप जान सकते हैं। उदाहरण using System; public class Demo { public static void Main() { Enum[] values = { ConsoleColor.Blue, DayOfWeek.Sunday }; Co