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

C# में var और dynamic में अंतर


हम जानते हैं कि किसी भी भाषा में प्रोग्रामिंग वेरिएबल घोषित करने से शुरू होती है जिसके बाद इसकी परिभाषा और लॉजिक कार्यान्वयन होता है। इसलिए किसी भी प्रोग्रामिंग भाषा में कोडिंग शुरू करने से पहले यह जानना सबसे महत्वपूर्ण कारकों में से एक है कि वेरिएबल कैसे घोषित करें।

अब यदि हम C# भाषा का एक उदाहरण लेते हैं तो भाषा में उन्नति के साथ वेरिएबल घोषणा में परिवर्तन आया है। C# के पूर्व संस्करणों में लिखा गया सारा कोड कंपाइल टाइम पर ही मान्य हो जाता था जिसने इसे स्टैटिकली टाइप्ड भाषा बना दिया जहां वेरिएबल्स को var कीवर्ड का उपयोग करके घोषित किया जाता था। C# 4.0 के बाद dynamic की शुरुआत हुई जहां सिंटैक्स की मान्यता या त्रुटियों की जांच केवल रनटाइम पर होती है और इसके साथ ही वेरिएबल घोषणा के लिए dynamic कीवर्ड पेश किया गया।

var और dynamic के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

क्र.सं.मुख्य बिंदुvardynamic
1परिभाषाvar को स्टैटिकली टाइप्ड वेरिएबल के रूप में जाना जाता है जिसका अर्थ है कि इन वेरिएबल्स का डेटा प्रकार कंपाइल टाइम पर अनुमानित किया जाता है जो इन वेरिएबल्स को इनिशियलाइज़ करने वाले मान के प्रकार पर आधारित होता है।दूसरी ओर dynamic डायनामिकली टाइप्ड वेरिएबल्स हैं जो स्पष्ट रूप से इंगित करता है कि उनका प्रकार कंपाइल टाइम पर नहीं बल्कि रनटाइम पर कंपाइलर द्वारा अनुमानित किया जाता है।
2संस्करणvar C# भाषा में C# 3.0 में पेश किया गया थादूसरी ओर dynamic बाद में C# 4.0 में पेश किया गया
3प्रकारvar के मामले में वेरिएबल का प्रकार कंपाइलर द्वारा कंपाइलेशन टाइम पर पहचाना जाता है।दूसरी ओर dynamic के मामले में वेरिएबल का प्रकार कंपाइलर द्वारा रनटाइम पर पहचाना जाता है।
4घोषणाvar के मामले में वेरिएबल को इसकी घोषणा के समय इनिशियलाइज़ किया जाता है ताकि कंपाइलर को इसके असाइन किए गए मान के अनुसार वेरिएबल का प्रकार पता चल सके।दूसरी ओर dynamic के मामले में घोषणा के समय इनिशियलाइज़ करना अनिवार्य नहीं है।
5अपवादvar के साथ परिभाषित वेरिएबल घोषणा के समय इनिशियलाइज़ नहीं होने पर अपवाद फेंकता है।जबकि dynamic के साथ परिभाषित वेरिएबल उनकी घोषणा के समय इनिशियलाइज़ नहीं होने पर कोई अपवाद नहीं फेंकते।

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

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

  1. - जावा में स्टेटिक बाइंडिंग और डायनामिक बाइंडिंग में अंतर

    बाइंडिंग मेथड कॉल और मेथड के वास्तविक कार्यान्वयन के बीच लिंक बनाने का एक तंत्र है। जावा में पॉलीमॉर्फिज्म अवधारणा के अनुसार, ऑब्जेक्ट के कई अलग-अलग रूप हो सकते हैं। ऑब्जेक्ट रूपों को कंपाइल टाइम और रन टाइम पर हल किया जा सकता है। यदि मेथड कॉल और मेथड कार्यान्वयन के बीच लिंकिंग कंपाइल टाइम पर हल हो ज

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व