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

C# में रिफ्लेक्शन (Reflection)

रिफ्लेक्शन - रनटाइम पर टाइप जानकारी प्राप्त करना

रिफ्लेक्शन ऑब्जेक्ट्स का उपयोग रनटाइम पर टाइप जानकारी प्राप्त करने के लिए किया जाता है। रनिंग प्रोग्राम के मेटाडेटा तक पहुंच प्रदान करने वाली क्लासेस System.Reflection नेमस्पेस में हैं।

रिफ्लेक्शन के अनुप्रयोग:

  • रनटाइम पर एट्रिब्यूट जानकारी देखना
  • असेंबली में विभिन्न टाइप्स की जांच करना और उन्हें इंस्टेंशिएट करना
  • मेथड्स और प्रॉपर्टीज के लिए लेट बाइंडिंग
  • रनटाइम पर नए टाइप्स बनाना और उनका उपयोग करना

उदाहरण - कस्टम एट्रिब्यूट पढ़ना:

using System; 

[AttributeUsage(AttributeTargets.All)] 
public class HelpAttribute : System.Attribute { 
    public readonly string Url; 
    public string Topic { 
        get { return topic; } 
        set { topic = value; } 
    } 
    public HelpAttribute(string url) { this.Url = url; } 
    private string topic; 
} 

[HelpAttribute("Information on the class MyClass")] 
class MyClass { } 

namespace AttributeAppl { 
    class Program { 
        static void Main(string[] args) { 
            System.Reflection.MemberInfo info = typeof(MyClass); 
            object[] attributes = info.GetCustomAttributes(true); 
            for (int i = 0; i < attributes.Length; i++) { 
                System.Console.WriteLine(attributes[i]); 
            } 
            Console.ReadKey(); 
        } 
    } 
}

आम रिफ्लेक्शन ऑपरेशन्स:

// टाइप प्राप्त करना
Type t = typeof(MyClass); 
Type t2 = obj.GetType(); 

// मेंबर्स प्राप्त करना
MemberInfo[] members = t.GetMembers(); 
MethodInfo[] methods = t.GetMethods(); 
PropertyInfo[] props = t.GetProperties(); 

// इंस्टेंस बनाना
object instance = Activator.CreateInstance(t); 

// मेथड इनवोक करना
MethodInfo method = t.GetMethod("MethodName"); 
method.Invoke(instance, args);
  1. - JavaScript में किसी बिंदु का दूसरे बिंदु के सापेक्ष प्रतिबिंब खोजना

    समरूपता बिंदुबिंदु प्रतिबिंब या बिंदु समरूपता ज्यामिति में एक मूल अवधारणा है जहां एक दिया गया बिंदु, P, एक मध्य बिंदु, Q के सापेक्ष एक दी गई स्थिति पर होता है, उसका एक संगत बिंदु, P1, होता है, जो Q से समान दूरी पर लेकिन विपरीत दिशा में होता है।समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो 2-D प्लेन म

  1. C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें

    समस्या विवरण मान लीजिए हमारे पास 2D तल पर n बिंदु हैं, हमें जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से प्रतिबिंबित करती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो सभी बिंदुओं को दी गई रेखा पर प्रतिबिंबित करने के बाद मूल बिंदुओं का समुच्चय प

  1. C++ में मिरर रिफ्लेक्शन C++ में मिरर रिफ्लेक्शन

    मान लीजिए एक विशेष वर्ग कमरा है जिसकी चारों दीवारों पर दर्पण लगे हैं। दक्षिण-पश्चिम कोने को छोड़कर प्रत्येक कोने में रिसेप्टर्स हैं। इन्हें 0, 1, और 2 के रूप में संख्यांकित किया गया है। अब वर्ग कमरे की दीवारों की लंबाई p है, और दक्षिण-पश्चिम कोने से एक लेजर किरण पूर्वी दीवार पर 0th रिसेप्टर से दूरी