C# Variable Types: Variable हमेंशा Program Execution के दौरान Memory में Stored Data को Represent करता है और किसी भी अन्य Programming Language की तरह C# में भी Variables का प्रयोग Data को Temporarily Store व Retrieve करने के लिए किया जाता है। C# में मूल रूप से चार प्रकार के Variables होते हैं:
Local Variable
ये वे Variables होते हैं, जो किसी Method के Scope में किसी Temporary Data को Represent करते हैं। ये किसी भी Type के Members नहीं होते।
Field
ये वे Variables होते हैं, जो किसी Type के Data Members को Represent करते हैं।
Parameter
ये वे Variables होते हैं, जो एक Method से किसी दूसरे Method में Pass किए जाने वाले Data को Represent करते हैं और ये भी किसी Type के Members नहीं होते।
Array Elements
ये वे Variables होते हैं, जो किसी Array के Elements की तरह Represent होते हैं, जबकि ये किसी Method के Local Data को भी Represent कर सकते हैं और किसी Type के Member Data को भी।
Initialization and Assignment
जब हम किसी Variable या Object को Declare करते समय ही उसमें कोई Initial Value Specify कर देते हैं, तो इस प्रक्रिया को Variable या Object Initialization कहा जाता है। जैसे:
int age = 30; // Variable Declaration and Initialization
इस Statement में हमने age नाम के Variable को Declare करते समय ही उसमें Store होने वाली Value को Specify कर दिया है। इसी प्रक्रिया को Initialization कहते हैं।
जबकि किसी Variable या Object को Declare करने के बाद पूरे Program के Execution के दौरान कहीं पर भी उस Variable को कोई मान Set किया जाता है, तो इस प्रक्रिया को Variable या Object Assignment कहा जाता है। जैसे:
int age; // Variable Declaration
//Other Statements …
age = 30; // Variable Assignment
इस Statement में हमने age नाम के Variable को Declare करने के बाद एक अलग Statement के रूप में उसमें Store होने वाली Value को Specify किया है। इसलिए इस प्रक्रिया को Assignment कहते हैं।
C# में कुछ Specific Type के Variables को Declare करते ही वे Default Initial Values से Automatically Initialize हो जाते हैं। जबकि जो Variables Automatically Initialize नहीं होते, उनमें तब तक Undefined मान Stored रहता है, जब तक कि Program Execution के दौरान उन्हें कोई मान Assign नहीं किया जाता।
C# में Specified चारों प्रकार के Variables में से कौनसा Variable Stack में Space Reserve करता है और कौनसा Variable Heap में, इस बात को हम निम्नानुसार आसानी से समझ सकते हैं:
Static and Dynamic Typeing
जैसाकि हम जानते हैं कि हम जब भी कोई Variable Declare करते हैं, हमें उस Variable के नाम को उसके Type के साथ Specify करते हुए Declare करना होता है। जैसे:
int age; // Variable Declaration
इस प्रकार से जो Declaration किया जाता है, Compiler उस Declaration में Specified Type के आधार पर तय कर लेता है कि उसे हमारे Variable के लिए कितनी Memory Reserve करनी है और Variable के Type के आधार पर Stack या Heap में से किस Memory Area में Memory Reserve करनी है।
यानी जब हम इस तरह का Statement लिखते हैं, तो Compiler को Compile Time में ही Variable के Type के विषय में सारी जानकारी होती है। इसलिए इस तरह के Declaration को Static Typing कहा जाता है।
सभी Programming Languages Static Typing को Support नहीं करते। सामान्यत: विभिन्न Scripting Languages जैसे कि PHP, Python, Ruby, JavaScript आदि हमेंशा Dynamical Typing को Support करते हैं।
Dynamic Typing के अन्तर्गत जब तक Program को Run नहीं किया जाता और जब तक Compiler उस Statement तक नहीं पहुंचताए जहां पर Variable में Value को Assign किया गया है, तब तक Compiler उस Variable का Type निश्चित नहीं करता।
साथ ही Compiler एक ही Variable में Program के अलग-अलग Statement के Execution के दौरान अलग-अलग Type के मान Assign करके एक ही Variable को अलग-अलग Dynamically Type में भी Convert करता रहता है।
यानी जब Variable में Integer Type का मान Store करते हैं, तो इन Languages में Variable Integer Type का बन जाता है। जबकि यदि हम अगले ही Statement में उसी Variable में String Type का मान Store कर दें, तो वही Variable एक String Object की तरह भी काम करने लगता है।
चूंकि .NET Framework IronPython, IronRuby, JavaScript जैसी Scripting Languages को भी .NET Languages के रूप में Support करता है, इसलिए ये जरूरी हो जाता है कि .NET Framework Dynamic Typing को भी Support करे।
चूंकि .NET Assemblies विभिन्न .NET Supported Programming Languages के बीच Share हो सकती हैं, इसलिए ये जरूरी है कि C# भी Dynamic Typing को Support करे। अत: इस जरूरत को पूरा करने के लिए C# में dynamic Keyword को Define किया गया है, जो कि इस बात को निश्चित करता है कि किसी C# Type को Runtime में किस प्रकार से Resolve किया जा सकता है।
जब हम किसी Variable को dynamic Keyword के साथ Declare करते हैं, तो C# Compiler उस Variable को तब तक Check नहीं करताए जब तक कि Program Control उस Statement तक नहीं पहुंच जाताए जहां पर उस Variable को Value Assign किया गया है और जिस तरह का मान उस Variable को Assign किया गया होता है, उस मान के आधार पर C# Compiler Program के Runtime में उस Variable के लिए Stack या Heap Area में Memory Allocate करता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C#.NET in Hindi | Page:908 | Format: PDF