व्यायाम - विधि के दायरे को समझें

पूरा किया

for लूप, if-else कथन और विधियाँ सभी विभिन्न प्रकार के कोड ब्लॉक का प्रतिनिधित्व करते हैं। प्रत्येक कोड ब्लॉक का अपना 'दायरा' होता है। 'स्कोप' एक प्रोग्राम का क्षेत्र है जहां कुछ डेटा सुलभ है। किसी विधि, या किसी भी कोड ब्लॉक के अंदर घोषित चर, केवल उस क्षेत्र के भीतर ही पहुंच योग्य हैं। जैसे-जैसे प्रोग्राम अधिक जटिल होते जाते हैं, यह पैटर्न प्रोग्रामर को लगातार स्पष्ट रूप से नामित चर का उपयोग करने और कोड पढ़ने में आसान बनाए रखने में मदद करता है।

इस अभ्यास में, आप विभिन्न प्रकार के तरीकों और चर के साथ काम करके विधि के दायरे के बारे में अधिक जानेंगे।

चर क्षेत्र का परीक्षण करें

किसी भी कोड ब्लॉक के बाहर घोषित बयानों को शीर्ष-स्तरीय कथन कहा जाता है। शीर्ष-स्तरीय कथनों में घोषित चर को 'वैश्विक चर' कहा जाता है। वैश्विक चर किसी भी दायरे तक सीमित नहीं हैं, और पूरे कार्यक्रम में कहीं भी उपयोग किए जा सकते हैं। वैश्विक चर विभिन्न तरीकों के लिए उपयोगी हो सकते हैं जिन्हें एक ही डेटा तक पहुंचने की आवश्यकता होती है। हालांकि, विभिन्न क्षेत्रों में चर नामों पर ध्यान देना महत्वपूर्ण है।

  1. Visual Studio कोड संपादक में, पिछले अभ्यासों से किसी भी मौजूदा कोड हटाएँ।

  2. 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 जो समान नाम के साथ एक पैरामीटर स्वीकार करता है।

  3. सहेजें और निम्न आउटपुट का निरीक्षण करने के लिए कोड चलाएँ:

    Jenna, Ayesha, Carlos, Viktor, 
    Robert, Vanya, 
    

    ध्यान दें कि विधि पैरामीटर student वैश्विक student सरणी पर पूर्वता लेता है। इस बारे में विचार-विमर्श करना महत्वपूर्ण है कि आप अपने तरीकों का उपयोग किन वैश्विक चर चाहते हैं।

  4. पिछला कोड हटाएँ.

  5. संपादक में निम्न कोड दर्ज करें:

    PrintCircleArea(12);
    
    void PrintCircleArea(int radius)
    {
        double pi = 3.14159;
        double area = pi * (radius * radius);
        Console.WriteLine($"Area = {area}");
    }
    

    यह कोड एक सर्कल के क्षेत्र की गणना और प्रदर्शन करता है।

  6. अपने कोड को निम्नानुसार अपडेट करके विधि के अंदर चर को संदर्भित करने का PrintCircleArea प्रयास करें:

    PrintCircleArea(12);
    double circumference = 2 * pi * radius;
    

    त्रुटि संदेश आपको सूचित करते हुए प्रकट होते हैं कि नाम pi और radius वर्तमान क्षेत्र में मौजूद नहीं हैं। वे चर केवल विधि के दायरे में PrintCircleArea मौजूद हैं।

  7. ग़लत कोड हटाएँ, और निम्न कोड जोड़ें:

    void PrintCircleCircumference(int radius)
    {
        double pi = 3.14159;
        double circumference = 2 * pi * radius;
        Console.WriteLine($"Circumference = {circumference}");
    }
    

    चूंकि चर pi एक ही निश्चित मूल्य पर सेट है और दोनों विधियों में उपयोग किया जाता है, इसलिए यह मान वैश्विक चर के लिए एक अच्छा उम्मीदवार है। इस उदाहरण में, radius एक वैश्विक चर नहीं है ताकि आप हर बार एक चर को अपडेट किए बिना विभिन्न मानों के radius साथ विधियों को कॉल कर सकें।

  8. अपने कोड को निम्न में अपडेट करें:

    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 आवश्यकता के बिना समान मान का संदर्भ दे सकती हैं। आप पहले ही अनुमान लगा चुके होंगे कि विधियाँ अन्य विधियों को कॉल कर सकती हैं। आम तौर पर, जब तक किसी विधि को आपके प्रोग्राम के दायरे में परिभाषित किया जाता है, तब तक इसे कहीं भी बुलाया जा सकता है।

  9. अपने कोड में एक नई विधि निम्नानुसार जोड़ें:

    double pi = 3.14159;
    PrintCircleInfo(12);
    PrintCircleInfo(24);
    
    void PrintCircleInfo(int radius) 
    {
        Console.WriteLine($"Circle with radius {radius}");
        PrintCircleArea(radius);
        PrintCircleCircumference(radius);
    }
    

    इस कोड में, आप मौजूदा विधियों को कॉल करने के लिए एक नई पद्धति PrintCircleInfo बनाएँ। का radius मूल्य भी प्रत्येक विधि के लिए नीचे पारित किया जाता है। मॉड्यूलर तरीके बनाने से आपके कोड को व्यवस्थित और पढ़ने में आसान रखने में मदद मिल सकती है।

  10. सहेजें और निम्न आउटपुट का निरीक्षण करने के लिए कोड चलाएँ:

    Circle with radius 12
    Area = 452.38896
    Circumference = 75.39815999999999
    Circle with radius 24
    Area = 1809.55584
    Circumference = 150.79631999999998
    

संक्षिप्त

यहां बताया गया है कि आपने अब तक विधि के दायरे के बारे में क्या सीखा है:

  • किसी विधि के अंदर घोषित चर केवल उस विधि के लिए सुलभ हैं।
  • शीर्ष-स्तरीय बयानों में घोषित चर पूरे कार्यक्रम में सुलभ हैं।
  • विधियों में विभिन्न विधियों के भीतर परिभाषित चर तक पहुंच नहीं है।
  • विधियाँ अन्य विधियों को कॉल कर सकती हैं।