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