Introduction to C#
C# एक modern object oriented programming language है। ये Microsoft के द्वारा 1990 में बनायीं गयी थी। C# Anders Hejlsberg ने develop की थी। C# को .NET framework में software development के लिए बनाया गया था। C# C, C++ और java से related है।
C# के almost सभी features इन तीनों languages से ही लिए गए है। लेकिन ऐसे कुछ advanced features भी है जो सिर्फ C# में ही available है। जैसे की mixed language programming, ये एक ऐसा feature है जिसके द्वारा आप अलग अलग programming languages के codes को connect कर सकते है और एक साथ execute कर सकते है। इस feature के द्वारा आप अपना आधा software किसी और language में और आधा किसी दूसरी language में create कर सकते है।
.NET framework software बनाने और execute करने के लिए एक environment है। इसमें आप अलग अलग computer languages को एक साथ यूज़ करते हुए software development कर सकते है। .NET framework के 2 important component होते है। पहला CLR होता है। जैसे की मैने पहले बताया ये आपके program के execution को manage करने के लिए responsible होता है।
दूसरा important component .NET class library होती है। इस library में कुछ predefined classes और interfaces होते है। इन classes का इस्तेमाल करते हुए आप ज्यादा मेहनत किये बिना अच्छे software’s develop कर सकते है। जैसे की graphics create करने लिए आपको हर component खुद create करने की आवश्यकता नहीं है। आप पहले से create किये हुए components को access करके यूज़ कर सकते है।
C# windows के लिए fully integrated है। यदि आप java में कोई software develop करते है तो windows पर उसे execute करने के लिए आपको JVM install करना होता है। लेकिन C# के साथ ऐसा नहीं है। C# में बने हुए software को execute करने के लिए आपको किसी भी दूसरे software की आवश्यकता नहीं होती है।
यदि आपने c, c++ और java में से किसी भी language में programming की हुई है तो C# में आप आसानी से development कर सकते है। यदि आपने java में programming की हुई है तो आपको C# के साथ काम करने में कोई भी दिक्कत नहीं होगी क्योंकि java और C# में बहुत अधिक समानता है।
C# में programs बनाने से पहले ऐसी कुछ terms है जो आपको पता होनी चाहिए। इनके बारे में निचे दिया जा रहा है।
MSIL (Microsoft Intermediate Language)
जब भी आप C# program को compile करते है तो सीधा machine code generate नहीं होता है। बल्कि एक pseudo code generate होता है, जिसे MSIL कहते है। ये java के byte code की तरह ही होता है। जिसे बाद में convert करके machine code generate किया जाता है।
CLR (Common Language Run-time)
CLR के द्वारा ही MSIL machine code में convert किया जाता है। ये java में JVM की तरह होता है। ऐसा कोई भी program जो MSIL में convert किया गया है, उसे CLR के साथ machine code में convert किया जा सकता है। CLR आपके program के execution को manage करता है।
JIT (Just In Time) Compiler
JIT compiler के द्वारा ही MSIL को machine executable code में convert किया जाता है। जब भी आप C# program को execute करते है तो CLR के द्वारा JIT को activate किया जाता है। इसके बाद JIT MSIL को machine executable code में convert करता है।
CLS (Common Language Specification)
.NET framework में अलग अलग languages को एक साथ काम करने के लिए कुछ common rules follow करने होते है। ये rules CLS द्वारा define किये जाते है। लेकिन ये तब ही possible है जब सभी languages .NET compatible हो। यदि आप ऐसा program बनाना चाहते है जो दूसरी languages यूज़ कर सके तो आपका program CLS compatible होना चाहिए।
Object Oriented Principles
C# एक object oriented programming है। एक object oriented programming में सब कुछ object होता है। C# कुछ object oriented principles को follow करती है, जिनके बारे में निचे दिया जा रहा है।
Encapsulation
Encapsulation का मतलब data hiding होता है। इसके माध्यम से data और code को bind किया जाता है। C# में encapsulation access specifiers के द्वारा implement किया जाता है। C# में 3 important access specifier होते है।
- Public - Data को सभी दूसरे objects access कर सकते है।
- Private - Data को दूसरे objects access नहीं कर सकते है।
- Protected - Inherited objects data को access कर सकते है।
Inheritance
Inheritance एक ऐसा feature है जिसके माध्यम से एक object दूसरे object के members को access कर सकता है। इससे आप एक ही code को बार बार लिखने की problem से बच जाते है।
Polymorphism
Polymorphism एक ऐसा feature है जिसके माध्यम से आप एक ही नाम यूज़ करते हुए अलग अलग tasks perform कर सकते है। इससे अलग अलग नाम ढूंढने और उनको याद रखने की problem से आप बच जाते है।
C# एक बहुत ही simple और powerful language है, आपको इसे जरूर सीखना चाहिए।