2017-05-15 12 views
5

Object के लिए टाइपिंग जांच संकलन समय पर होती है जहां dynamic डेटा प्रकार के प्रकार की जांच रन टाइम पर होती है तो हम ऑब्जेक्ट में डायनामिक वैल्यू को कैसे बॉक्स कर सकते हैं?सी # में गतिशील डेटा प्रकार पर मुक्केबाजी?

dynamic dynamic = "This is dynamic data type"; 
Object obj = dynamic; 
Console.WriteLine(obj); 
+0

परिवर्तनीय नाम – Rahul

+1

@Rahul 'गतिशील' के लिए आरक्षित शब्दों का उपयोग न करने पर विचार करें एक आरक्षित शब्द नहीं है। – Servy

+1

@ सर्वी, लेकिन एक अच्छा अभ्यास भी सही नहीं है? – Rahul

उत्तर

9

dynamicपहले से ही हमेशा एक object है - यह अनिवार्य रूप से object रूप लागू किया, कैसे मंगलाचरण होता है पर विभिन्न नियमों के साथ है। तो dynamic और object के बीच बॉक्स में कुछ भी नहीं है। इसके अतिरिक्त, string शाब्दिक object है, इसलिए: बॉक्स पर कुछ भी नहीं है।

कोई मुक्केबाजी यहां आवश्यक नहीं है। आपके पास पहले से object है। dynamic से object पर अंतर्निहित प्रकार रूपांतरण एक नो-ऑप है।

+0

मैं समझता हूं कि दोनों वस्तुएं हैं और गतिशील डेटा प्रकार को बॉक्स करने की कोई आवश्यकता नहीं है, लेकिन मुझे यह नहीं मिल सकता है कि सी # कंपाइलर डेटा प्रकार के ऑब्जेक्ट का निर्णय कैसे लेगा यदि यह वैल्यू डायनामिक डेटाटाइप है और इसे चलाने पर निर्णय लेने की आवश्यकता है पहर? – Nofi

+1

@ नोफी का फैसला करने के लिए कुछ भी नहीं है ... सचमुच कोई निर्णय लेने का कोई निर्णय नहीं है। यह सब कुछ मौजूदा संदर्भ चर को दूसरे संदर्भ चर में संग्रहीत कर रहा है। आईएल स्तर पर, यह सिर्फ एक स्ट्रिंग (ldstr) लोड कर रहा है, इसे एक चर (stloc) में संग्रहीत कर रहा है, एक चर (ldloc) लोड कर रहा है, फिर इसे किसी अन्य चर (stloc) में संग्रहीत कर रहा है। –

+0

मुझे आपका अंक मिला – Nofi

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