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

C# में डायनामिक टाइप और ऑब्जेक्ट टाइप वेरिएबल्स में अंतर

object टाइप

  • C# कॉमन टाइप सिस्टम (CTS) में सभी टाइप्स का अल्टीमेट बेस क्लास
  • System.Object का एलियास
  • किसी भी वैल्यू टाइप, रेफरेंस टाइप को होल्ड कर सकता है
  • टाइप चेकिंग कंपाइल टाइम पर (बॉक्सिंग/अनबॉक्सिंग के साथ)
  • मेंबर्स एक्सेस करने के लिए कास्टिंग आवश्यक

object obj = 100;        // बॉक्सिंग
int val = (int)obj;      // अनबॉक्सिंग - कास्ट आवश्यक
obj = "Hello";           // रेफरेंस टाइप

dynamic टाइप

  • C# 4.0 में प्रस्तुत
  • टाइप चेकिंग रनटाइम पर (DLR - डायनामिक लैंग्वेज रनटाइम)
  • कंपाइलर ऑपरेशन्स/प्रॉपर्टीज की जांच नहीं करता
  • रनटाइम पर त्रुटि यदि मेंबर मौजूद नहीं
  • COM इंटरऑप, डायनामिक लैंग्वेज, JSON पार्सिंग के लिए उपयोगी

dynamic dyn = 100;
dyn = "Hello";           // कोई त्रुटि नहीं
dyn = new List();   // कोई त्रुटि नहीं
Console.WriteLine(dyn.Count); // रनटाइम पर काम करेगा यदि Count मौजूद
// dyn.NonExistentMethod(); // रनटाइम पर RuntimeBinderException

तुलना तालिका

पहलूobjectdynamic
टाइप चेकिंगकंपाइल टाइमरनटाइम
कास्टिंगआवश्यकआवश्यक नहीं
इंटेलिसेंसउपलब्धउपलब्ध नहीं
परफॉर्मेंसतेज (बॉक्सिंग के अलावा)धीमा (DLR ओवरहेड)
उपयोग केससामान्य ऑब्जेक्ट रेफरेंसइंटरऑप, रिफ्लेक्शन विकल्प

वर बनाम डायनामिक:

var - कंपाइल टाइम पर इनफर होता है, स्टैटिकली टाइप्ड। dynamic - रनटाइम पर रिजॉल्व होता है।

  1. - C# में Type Conversion और Type Casting में अंतर

    C# में Type Conversion vs Type Casting C# में टाइप कन्वर्जन और टाइप कास्टिंग अक्सर एक ही अर्थ में उपयोग होते हैं: **एक टाइप के मान को दूसरे टाइप में बदलना**। तकनीकी रूप से कास्टिंग एक्सप्लिसिट कन्वर्जन का सिंटैक्स है। दो रूप 1. इम्प्लिसिट टाइप कन्वर्जन (Implicit Conversion) कंपाइलर द्वारा स्वचालि

  1. - C# में क्लास और ऑब्जेक्ट के बीच अंतर

    जब आप एक क्लास डिफाइन करते हैं, तो आप एक डेटा टाइप के लिए ब्लूप्रिंट डिफाइन करते हैं। ऑब्जेक्ट्स क्लास के इंस्टेंसेस हैं। मेथड्स और वेरिएबल्स जो एक क्लास का गठन करते हैं, उन्हें क्लास के मेंबर्स कहा जाता है। क्लास मेंबर्स तक पहुंचने के लिए, आप ऑब्जेक्ट नाम के बाद डॉट (.) ऑपरेटर का उपयोग करते हैं। डॉ

  1. - Python में __str__ और __repr__ में क्या अंतर है?

    बिल्ट-इन फंक्शन्स repr() और str() क्रमशः object.__repr__(self) और object.__str__(self) मेथड्स को कॉल करते हैं। पहला फंक्शन ऑब्जेक्ट का आधिकारिक प्रतिनिधित्व कंप्यूट करता है, जबकि दूसरा ऑब्जेक्ट का अनौपचारिक प्रतिनिधित्व लौटाता है। इंटीजर ऑब्जेक्ट के लिए दोनों फंक्शन्स का परिणाम समान है। >>>