2010-04-26 10 views
9

सी # में प्रतिबिंब क्या है? हम अपने अवधारणाओं में इस अवधारणा का उपयोग कहां करते हैं?सी # में प्रतिबिंब क्या है? हम इस अवधारणा का उपयोग हमारे आवेदन में कहां करते हैं?

+1

पहली हिट पहले से ही बहुत खराब नहीं है: http://www.google.com/search?q=what+is+reflection+in+c%23+%3F+where+we+use+this+concept + में + हमारे + एप्लिकेशन% 3 एफ –

+2

क्या मैं सपना देख रहा हूं या प्रश्न का शीर्षक प्रश्न से अधिक लंबा है? – ereOn

+7

@ 0xA3: मुझे यकीन है कि स्टैक ओवरव्लो पर एक प्रारंभिक प्रश्न पूछने वाले किसी के लिए हमारे घुटने-झटके प्रतिक्रिया को "Google इसे स्वयं" या "आरटीएफएम" नहीं माना जाता है। –

उत्तर

16

प्रतिबिंब वस्तुओं (प्रकार Type) प्रदान करता है जो असेंबली, मॉड्यूल और प्रकारों को समाहित करता है। आप गतिशील रूप से किसी प्रकार का उदाहरण बनाने के लिए प्रतिबिंब का उपयोग कर सकते हैं, प्रकार को किसी मौजूदा ऑब्जेक्ट में बांध सकते हैं, या किसी मौजूदा ऑब्जेक्ट से प्रकार प्राप्त कर सकते हैं और इसके तरीकों का आह्वान कर सकते हैं या अपने फ़ील्ड और गुणों तक पहुंच सकते हैं। आप अपने कोड में विशेषताओं का उपयोग कर रहे हैं, प्रतिबिंब आप उन तक पहुँचने के लिए सक्षम बनाता है ...

संदर्भ के लिए, MSDN article on reflection और कोड परियोजना बहुत अच्छी तरह से समझाया reflection ..

उदाहरण के लिए, C# Reflection Examples पर एक नजर है है।

+0

जहां हम इसका इस्तेमाल करते हैं? क्या आप मुझे इसका आवेदन दे सकते हैं ?? – HITESH

+0

@Hitesh आप इसे असेंबली के साथ उपयोग कर सकते हैं ... लेख में कुछ अच्छे उदाहरण हैं ... –

+0

मुझे लगता है कि * COURTESY * –

5

documentation से:

परावर्तन (के प्रकार प्रकार) वस्तुओं है कि विधानसभाओं, मॉड्यूल और प्रकार संपुटित प्रदान करता है। आप गतिशील रूप से, किसी मौजूदा ऑब्जेक्ट एक प्रकार का एक उदाहरण बनाने के प्रकार बाध्य करने के लिए प्रतिबिंब का उपयोग कर सकते हैं, या किसी मौजूदा ऑब्जेक्ट से प्रकार हो और इसके विधियां प्रारंभ या उसके खेतों और गुण का उपयोग। यदि आप अपने कोड में विशेषताओं का उपयोग कर रहे हैं, तो प्रतिबिंब आपको उन तक पहुंचने में सक्षम बनाता है। अधिक जानकारी के लिए, गुण देखें।

Wikipedia कहना है कि यह:

कंप्यूटर विज्ञान में, प्रतिबिंब प्रक्रिया है जिसके द्वारा एक कंप्यूटर प्रोग्राम निरीक्षण और अपने स्वयं के संरचना और व्यवहार को संशोधित कर सकते हैं। प्रतिबिंबित प्रोग्रामिंग प्रतिमान प्रतिबिंबित प्रोग्रामिंग कहा जाता है। यह मेटाप्रोग्रामिंग का एक विशेष प्रकार है।

उदाहरण के लिए, यदि आप प्रोग्राम एक वर्ग के सभी तरीकों को प्रदर्शित करना चाहते हैं, तो आप यह इतना की तरह कर सकता है:

using System; 
using System.Reflection; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      var t = typeof(MyClass); 

      foreach (var m in t.GetMethods()) 
      { 
       Console.WriteLine(m.Name); 
      } 
      Console.ReadLine(); 
     } 
    } 


    public class MyClass 
    { 
     public int Add(int x, int y) 
     { 
      return x + y; 
     } 

     public int Subtract(int x, int y) 
     { 
      return x - y; 
     } 
    } 
} 
+0

जहां हम इसका उपयोग करते हैं क्या आप मुझे इसका आवेदन दे सकते हैं ?? – HITESH

+0

@HITESH मैंने एक उदाहरण जोड़ा है। –

0

आप क्या प्रतिबिंब है के ऊपर जवाब, कुछ मामलों मैं कहाँ 'है अतीत में यह उपयोग किया है:

  • एक सामान्य विधि है कि एक और
  • एक विधि का उपयोग करता है विवरण के लिए एक वस्तु में गुण और प्रतियां उन गुणों की एक सूची में ले जाता है this

को enum के लिए पाठ, समान प्राप्त करने के लिए इसके अलावा प्रतिबिंब के उदाहरण हैं, पृष्ठ के तल पर आगे लिंक के लिए this article देख जोड़कर देखते हैं।

+0

मुझे ऐसा लिंक देने के लिए धन्यवाद, लेकिन 1 सवाल यह है कि जब हम सरल .cs पृष्ठ या किसी अन्य पृष्ठ में नेमस्पेस के रूप में जोड़ते हैं? कृपया मुझे बताओ? – HITESH

+0

क्षमा करें, मुझे यकीन नहीं है कि आपका क्या मतलब है। प्रतिबिंब के लिए नामस्थान सिस्टम है। प्रतिबिंब। क्या तुम्हारे कहने का मतलब यही था? – Fermin

2

प्रतिबिंब का एक उपयोग आपको ढांचे में मिलेगा: किसी विशेष कार्य (उस ढांचे में) करने के लिए कुछ वर्ग का उपयोग किया जाता है। लेकिन सटीक वर्ग संकलन समय पर ज्ञात नहीं है, इसके बजाय इसे कुछ टेक्स्ट फ़ाइल में कॉन्फ़िगर किया गया है, क्लासनाम (आमतौर पर इसकी असेंबली सहित) के रूप में।प्रतिबिंब का उपयोग करके आप इस स्ट्रिंग को ले सकते हैं और उस विशेष वर्ग का उदाहरण बना सकते हैं।

संबंधित मुद्दे