2011-11-20 18 views
5

मैंने सीखा और सी # 4.सी # 4.0 'गतिशील' कीवर्ड के फायदे और नुकसान?

में जाँच dynamic कीवर्ड के लाभ शरीर के किसी भी मुझे इस का नुकसान बता सकते है। मतलब dynamic बनाम Var/Object/reflection ???

बल्लेबाज कौन सा चीज़ है। dynamic रन समय पर अधिक शक्तिशाली है ??

+3

बार/प्रतिबिंब सही नहीं है। Var संकलन समय पर मूल्यांकन टाइप टाइप वैरिएबल है। दूसरी तरफ प्रतिबिंब रन टाइम मूल्यांकन किया जाता है। मुझे लगता है कि प्रतिबिंब var से गतिशील के साथ पक्ष में खड़ा होगा। –

+0

हम वास्तव में यह नहीं बता सकते कि आप जो जानते हैं, वह हमें बताए बिना पर्याप्त है कि आप क्या जानते हैं। क्या फायदे हैं? कृपया इस जानकारी को प्रश्न में जोड़ें। –

उत्तर

2

बिल्कुल वैर बनाम गतिशील नहीं है लेकिन निम्नलिखित SO लिंक प्रतिबिंब बनाम गतिशील चर्चा करते हैं। चेक आउट: dynamic vs Var/Object/reflection

13

dynamic कीवर्ड के साथ सबसे दिलचस्प बात यह है कि आप जो कर सकते हैं वह है: डबल-प्रेषण का कार्यान्वयन। ओओपी में, रनटाइम पर वर्चुअल (या सार) विधि का एक विशेष कार्यान्वयन एक ऑब्जेक्ट के रनटाइम प्रकार के आधार पर कहा जाता है जो सदस्य फ़ंक्शन में this के रूप में पारित किया जाता है। इसे एकल प्रेषण कहा जाता है, क्योंकि प्रेषण एकल ऑब्जेक्ट के रनटाइम प्रकार पर निर्भर करता है। डबल-प्रेषण में, यह दो ऑब्जेक्ट्स के प्रकार पर निर्भर करता है।

यहाँ एक उदाहरण है:

public abstract class Base {} 
public class D1 : Base {} 
public class D2 : Base {} 
public class D3 : Base {} 

public class Test 
{ 
    public static void Main(string[] args) 
    { 
     Base b1 = new D1(); 
     Base b2 = new D2(); 

     Method(b1,b2); //calls 1 
     Method(b2,b1); //calls 1: arguments swapped! 
    } 

    public static void Method(Base b1, Base b2) // #1 
    { 
     dynamic x = b1; 
     dynamic y = b2; 

     Method(x,y); // calls 2 or 3: double-dispatch - the magic happens here! 

    } 
    public static void Method(D1 d1, D2 d2) // #2 
    { 
     Console.WriteLine("(D1,D2)"); 
    } 
    public static void Method(D2 d2, D1 d1) // #3: parameters swapped 
    { 
     Console.WriteLine("(D2,D1)"); 
    } 
} 

आउटपुट:

(D1,D2) 
(D2,D1) 

है, वास्तविक विधि, कार्यावधि में चुना जाता है, दो वस्तुओं के क्रम प्रकार के आधार पर उस के रूप में करने का विरोध किया एक वस्तु

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