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

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

विवरण

Type.GetField() मेथड वर्तमान Type के एक विशिष्ट फील्ड को दर्शाने वाला FieldInfo ऑब्जेक्ट प्राप्त करता है। यह रिफ्लेक्शन का हिस्सा है और रनटाइम पर फील्ड मेटाडेटा तक पहुंचने की अनुमति देता है।

सिंटैक्स

public System.Reflection.FieldInfo GetField(string name);
public abstract System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr);
  • name - प्राप्त करने वाले डेटा फील्ड का नाम।
  • bindingAttr - खोज कैसे संचालित की जाती है यह निर्दिष्ट करने वाले एन्यूमरेशन मानों का बिटवाइज़ संयोजन (उदाहरण: BindingFlags.Public | BindingFlags.Instance)।

उदाहरण 1: पब्लिक फील्ड प्राप्त करना

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        try {
            FieldInfo fieldInfo = type.GetField("SubName");
            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

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

आउटपुट

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(null);
            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

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

आउटपुट

System.ArgumentNullException

बाइंडिंग फ्लैग्स के साथ उन्नत उपयोग

// निजी, स्टेटिक, या इनहेरिटेड फील्ड्स प्राप्त करने के लिए
FieldInfo field = type.GetField("privateField", 
    BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);

मुख्य बिंदु

  • नाम null होने पर ArgumentNullException फेंकता है।
  • फील्ड न मिलने पर null लौटाता है (दूसरे ओवरलोड के साथ भी)।
  • डिफ़ॉल्ट ओवरलोड केवल पब्लिक इंस्टेंस फील्ड्स खोजता है।
  • प्राइवेट/प्रोटेक्टेड/स्टेटिक फील्ड्स के लिए BindingFlags का उपयोग करें।
  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); ऊपर, पैरामीटर वे ऑब्जेक्ट हैं जिनके अंतर्निहित