प्रोग्राम उदाहरणों के साथ C# में एक्सेस संशोधक (विनिर्देशक)
C# में एक्सेस संशोधक (स्पेसिफायर) क्या है?
एक्सेस संशोधक C# में एक्सेस स्पेसिफ़ायर वे कीवर्ड हैं जिनका उपयोग क्लास प्रॉपर्टी या मेथड की दृश्यता को परिभाषित करने के लिए किया जाता है। इसका उपयोग तब किया जाता है जब आप नहीं चाहते कि अन्य प्रोग्राम क्लास के प्रॉपर्टी या मेथड को देखें। एक्सेस मॉडिफ़ायर एक्सेस को प्रतिबंधित करते हैं ताकि अन्य प्रोग्राम क्लास के प्रॉपर्टी या मेथड को न देख सकें।
C# में 6 प्रकार के एक्सेस संशोधक हैं:
- निजी
- सार्वजनिक
- संरक्षित
- आंतरिक
- संरक्षित आंतरिक
- निजी संरक्षित
हम नीचे बताए गए प्रोग्राम उदाहरणों के साथ C# में मुख्य एक्सेस संशोधक के बारे में जानेंगे।
C# में निजी एक्सेस संशोधक
जब निजी एक्सेस संशोधक किसी प्रॉपर्टी या विधि से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों तक किसी भी बाहरी प्रोग्राम से नहीं पहुंचा जा सकता है।
निजी पहुँच संशोधक का उदाहरण
आइए एक उदाहरण लें और देखें कि जब हम निजी एक्सेस संशोधक का उपयोग करते हैं तो क्या होता है।
चलिए अपनी Tutorial.cs फ़ाइल में मौजूदा कोड को संशोधित करते हैं। SetTutorial विधि में, चलिए public कीवर्ड को private में बदलते हैं।
अब हम अपने Program.cs फ़ाइल पर चलते हैं। आप देखेंगे कि SetTutorial विधि के नीचे एक लाल रंग की टेढ़ी-मेढ़ी रेखा है।
चूँकि अब हमने अपने ट्यूटोरियल क्लास में SetTutorial मेथड को प्राइवेट घोषित कर दिया है, इसलिए Visual Studio ने इसे पहचान लिया है। इसने इसे हाइलाइट करके यूजर को बता दिया है कि अब यह मेथड Program.cs फ़ाइल से काम नहीं करेगा।
C# सार्वजनिक एक्सेस संशोधक
जब पब्लिक एक्सेस मॉडिफ़ायर किसी प्रॉपर्टी या मेथड से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों को किसी भी बाहरी प्रोग्राम से एक्सेस किया जा सकता है। हम इसे अपने पिछले उदाहरणों में पहले ही देख चुके हैं।
सार्वजनिक पहुँच संशोधक का उदाहरण
चूंकि हमने ट्यूटोरियल क्लास में अपनी विधियों को सार्वजनिक रूप में परिभाषित किया है, इसलिए उन्हें Program.cs फ़ाइल से एक्सेस किया जा सकता है।
C# में संरक्षित एक्सेस संशोधक
जब संरक्षित एक्सेस संशोधक किसी संपत्ति या विधि से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों तक केवल द्वारा ही पहुँचा जा सकता है विरासत में मिली कक्षाएं वर्तमान से कक्षा. इसे इनहेरिटेंस क्लास में अधिक विस्तार से समझाया जाएगा।
C# आंतरिक एक्सेस संशोधक
जब आंतरिक एक्सेस संशोधक को किसी प्रॉपर्टी या विधि से जोड़ा जाता है, तो उन सदस्यों तक केवल आंतरिक प्रोग्राम द्वारा ही पहुंचा जा सकता है, बाहरी प्रोग्राम द्वारा नहीं।
C# कंस्ट्रक्टर
C# कंस्ट्रक्टर का उपयोग क्लास फ़ील्ड के मानों को आरंभ करने के लिए किया जाता है जब उनके संगत ऑब्जेक्ट बनाए जाते हैं। कंस्ट्रक्टर एक विधि है जिसका नाम क्लास के समान होता है। यदि किसी क्लास में कंस्ट्रक्टर परिभाषित किया गया है, तो यह पहला तरीका प्रदान करेगा जिसे ऑब्जेक्ट बनाए जाने पर कॉल किया जाता है। मान लीजिए कि हमारे पास Employee नाम की क्लास है। कंस्ट्रक्टर विधि का नाम भी Employee() होगा।
कंस्ट्रक्टर विधियों के बारे में निम्नलिखित मुख्य बातों पर ध्यान देने की आवश्यकता है
- कन्स्ट्रक्टर के लिए C# डिफ़ॉल्ट एक्सेस संशोधक को सार्वजनिक बनाया जाना आवश्यक है।
- कन्स्ट्रक्टर विधि के लिए कोई रिटर्न प्रकार नहीं होना चाहिए।
C# कंस्ट्रक्टर का उदाहरण
आइए अब देखें कि हम अपने कोड में कंस्ट्रक्टर के उपयोगकर्ता को कैसे शामिल कर सकते हैं। जब ऑब्जेक्ट बनाया जाता है तो हम TutorialID और TutorialName फ़ील्ड को कुछ डिफ़ॉल्ट मानों पर आरंभ करने के लिए कंस्ट्रक्टर का उपयोग करेंगे।
चरण 1) पहला कदम हमारे ट्यूटोरियल क्लास के लिए कंस्ट्रक्टर बनाना है। इस चरण में, हम नीचे दिए गए कोड को Tutorial.cs फ़ाइल में जोड़ते हैं।
कोड स्पष्टीकरण:-
- हम सबसे पहले एक नया मेथड जोड़ते हैं जिसका नाम क्लास के नाम के समान होता है। चूँकि इसका नाम क्लास के नाम के समान है, इसलिए C# इसे कंस्ट्रक्टर मेथड के रूप में मानता है। इसलिए अब जब भी कॉलिंग मेथड इस क्लास का ऑब्जेक्ट बनाएगा, तो यह मेथड डिफ़ॉल्ट रूप से कॉल किया जाएगा।
- ट्यूटोरियल कंस्ट्रक्टर में, हम ट्यूटोरियलआईडी का मान 0 और ट्यूटोरियलनाम का मान “डिफ़ॉल्ट” पर सेट कर रहे हैं। इसलिए जब भी कोई ऑब्जेक्ट बनाया जाता है, तो इन फ़ील्ड में हमेशा ये डिफ़ॉल्ट मान होंगे।
अब चलिए अपने Program.cs फ़ाइल पर जाएँ और SetTutorial विधि को कॉल करने वाली लाइन को हटा दें। ऐसा इसलिए क्योंकि हम यह देखना चाहते हैं कि कंस्ट्रक्टर कैसे काम करता है।
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public Tutorial() { TutorialID=0; TutorialName="Default"; } public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
कोड स्पष्टीकरण:-
- पहला कदम ट्यूटोरियल क्लास के लिए एक ऑब्जेक्ट बनाना है। यह 'new' कीवर्ड के ज़रिए किया जाता है।
- हम TutorialName प्राप्त करने के लिए Tutorial क्लास की GetTutorial विधि का उपयोग करते हैं। फिर इसे Console.WriteLine विधि के माध्यम से कंसोल पर प्रदर्शित किया जाता है।
यदि उपरोक्त कोड ठीक से दर्ज किया गया है और प्रोग्राम निष्पादित किया गया है, तो निम्नलिखित आउटपुट प्रदर्शित होगा।
आउटपुट:
आउटपुट से, हम देख सकते हैं कि कंस्ट्रक्टर को वास्तव में कॉल किया गया था और ट्यूटोरियलनाम का मान "डिफ़ॉल्ट" पर सेट किया गया था।
नोट: यहां “डिफ़ॉल्ट” मान कन्स्ट्रक्टर से प्राप्त किया जाता है।
सारांश
- C# एक्सेस संशोधक या एक्सेस स्पेसिफायर का उपयोग किसी क्लास प्रॉपर्टी या विधि की दृश्यता को परिभाषित करने के लिए किया जाता है।
- जब निजी एक्सेस संशोधक किसी प्रॉपर्टी या विधि से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों तक किसी भी बाहरी प्रोग्राम से नहीं पहुंचा जा सकता है।
- जब सार्वजनिक एक्सेस संशोधक किसी प्रॉपर्टी या विधि से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों तक किसी भी बाहरी प्रोग्राम से पहुंचा जा सकता है।
- जब संरक्षित एक्सेस संशोधक किसी प्रॉपर्टी या विधि से जुड़ा होता है, तो इसका मतलब है कि उन सदस्यों तक केवल वर्तमान क्लास से विरासत में प्राप्त क्लासों द्वारा ही पहुंचा जा सकता है।
- जब आंतरिक एक्सेस संशोधक को किसी प्रॉपर्टी या विधि से जोड़ा जाता है, तो उन सदस्यों तक केवल आंतरिक प्रोग्राम द्वारा ही पहुंचा जा सकता है, बाहरी प्रोग्राम द्वारा नहीं।
- C# कंस्ट्रक्टर्स का उपयोग क्लास फील्ड्स के मानों को आरंभ करने के लिए किया जाता है जब उनके संगत ऑब्जेक्ट्स का निर्माण किया जाता है।