व्यायाम - विधि के दायरे को समझें
for लूप, if-else कथन और विधियाँ सभी विभिन्न प्रकार के कोड ब्लॉक का प्रतिनिधित्व करते हैं। प्रत्येक कोड ब्लॉक का अपना 'दायरा' होता है। 'स्कोप' एक प्रोग्राम का क्षेत्र है जहां कुछ डेटा सुलभ है। किसी विधि, या किसी भी कोड ब्लॉक के अंदर घोषित चर, केवल उस क्षेत्र के भीतर ही पहुंच योग्य हैं। जैसे-जैसे प्रोग्राम अधिक जटिल होते जाते हैं, यह पैटर्न प्रोग्रामर को लगातार स्पष्ट रूप से नामित चर का उपयोग करने और कोड पढ़ने में आसान बनाए रखने में मदद करता है।
इस अभ्यास में, आप विभिन्न प्रकार के तरीकों और चर के साथ काम करके विधि के दायरे के बारे में अधिक जानेंगे।
चर क्षेत्र का परीक्षण करें
किसी भी कोड ब्लॉक के बाहर घोषित बयानों को शीर्ष-स्तरीय कथन कहा जाता है। शीर्ष-स्तरीय कथनों में घोषित चर को 'वैश्विक चर' कहा जाता है। वैश्विक चर किसी भी दायरे तक सीमित नहीं हैं, और पूरे कार्यक्रम में कहीं भी उपयोग किए जा सकते हैं। वैश्विक चर विभिन्न तरीकों के लिए उपयोगी हो सकते हैं जिन्हें एक ही डेटा तक पहुंचने की आवश्यकता होती है। हालांकि, विभिन्न क्षेत्रों में चर नामों पर ध्यान देना महत्वपूर्ण है।
Visual Studio कोड संपादक में, पिछले अभ्यासों से किसी भी मौजूदा कोड हटाएँ।
Visual Studio कोड संपादक में निम्न कोड दर्ज करें:
string[] students = {"Jenna", "Ayesha", "Carlos", "Viktor"}; DisplayStudents(students); DisplayStudents(new string[] {"Robert","Vanya"}); void DisplayStudents(string[] students) { foreach (string student in students) { Console.Write($"{student}, "); } Console.WriteLine(); }इस कोड में, आप एक वैश्विक
studentsसरणी बनाएँ, और एक विधिDisplayStudentsजो समान नाम के साथ एक पैरामीटर स्वीकार करता है।सहेजें और निम्न आउटपुट का निरीक्षण करने के लिए कोड चलाएँ:
Jenna, Ayesha, Carlos, Viktor, Robert, Vanya,ध्यान दें कि विधि पैरामीटर
studentवैश्विकstudentसरणी पर पूर्वता लेता है। इस बारे में विचार-विमर्श करना महत्वपूर्ण है कि आप अपने तरीकों का उपयोग किन वैश्विक चर चाहते हैं।पिछला कोड हटाएँ.
संपादक में निम्न कोड दर्ज करें:
PrintCircleArea(12); void PrintCircleArea(int radius) { double pi = 3.14159; double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); }यह कोड एक सर्कल के क्षेत्र की गणना और प्रदर्शन करता है।
अपने कोड को निम्नानुसार अपडेट करके विधि के अंदर चर को संदर्भित करने का
PrintCircleAreaप्रयास करें:PrintCircleArea(12); double circumference = 2 * pi * radius;त्रुटि संदेश आपको सूचित करते हुए प्रकट होते हैं कि नाम
piऔरradiusवर्तमान क्षेत्र में मौजूद नहीं हैं। वे चर केवल विधि के दायरे मेंPrintCircleAreaमौजूद हैं।ग़लत कोड हटाएँ, और निम्न कोड जोड़ें:
void PrintCircleCircumference(int radius) { double pi = 3.14159; double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }चूंकि चर
piएक ही निश्चित मूल्य पर सेट है और दोनों विधियों में उपयोग किया जाता है, इसलिए यह मान वैश्विक चर के लिए एक अच्छा उम्मीदवार है। इस उदाहरण में,radiusएक वैश्विक चर नहीं है ताकि आप हर बार एक चर को अपडेट किए बिना विभिन्न मानों केradiusसाथ विधियों को कॉल कर सकें।अपने कोड को निम्न में अपडेट करें:
double pi = 3.14159; void PrintCircleArea(int radius) { double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); } void PrintCircleCircumference(int radius) { double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }अब दोनों विधियां इसे परिभाषित करने की
piआवश्यकता के बिना समान मान का संदर्भ दे सकती हैं। आप पहले ही अनुमान लगा चुके होंगे कि विधियाँ अन्य विधियों को कॉल कर सकती हैं। आम तौर पर, जब तक किसी विधि को आपके प्रोग्राम के दायरे में परिभाषित किया जाता है, तब तक इसे कहीं भी बुलाया जा सकता है।अपने कोड में एक नई विधि निम्नानुसार जोड़ें:
double pi = 3.14159; PrintCircleInfo(12); PrintCircleInfo(24); void PrintCircleInfo(int radius) { Console.WriteLine($"Circle with radius {radius}"); PrintCircleArea(radius); PrintCircleCircumference(radius); }इस कोड में, आप मौजूदा विधियों को कॉल करने के लिए एक नई पद्धति
PrintCircleInfoबनाएँ। काradiusमूल्य भी प्रत्येक विधि के लिए नीचे पारित किया जाता है। मॉड्यूलर तरीके बनाने से आपके कोड को व्यवस्थित और पढ़ने में आसान रखने में मदद मिल सकती है।सहेजें और निम्न आउटपुट का निरीक्षण करने के लिए कोड चलाएँ:
Circle with radius 12 Area = 452.38896 Circumference = 75.39815999999999 Circle with radius 24 Area = 1809.55584 Circumference = 150.79631999999998
संक्षिप्त
यहां बताया गया है कि आपने अब तक विधि के दायरे के बारे में क्या सीखा है:
- किसी विधि के अंदर घोषित चर केवल उस विधि के लिए सुलभ हैं।
- शीर्ष-स्तरीय बयानों में घोषित चर पूरे कार्यक्रम में सुलभ हैं।
- विधियों में विभिन्न विधियों के भीतर परिभाषित चर तक पहुंच नहीं है।
- विधियाँ अन्य विधियों को कॉल कर सकती हैं।