แบบฝึกหัด - ทําความเข้าใจขอบเขตวิธีการ

เสร็จสมบูรณ์เมื่อ

for if-elseรอบ คําสั่ง และวิธีการแสดงชนิดของบล็อกโค้ดที่แตกต่างกัน แต่ละบล็อกรหัสมี 'ขอบเขต' ของตนเอง 'ขอบเขต' เป็นภูมิภาคของโปรแกรมที่ข้อมูลบางอย่างสามารถเข้าถึงได้ ตัวแปรที่ประกาศภายในวิธีการ หรือบล็อกโค้ดใด ๆ สามารถเข้าถึงได้ภายในภูมิภาคนั้นเท่านั้น เนื่องจากโปรแกรมมีความซับซ้อนมากขึ้น รูปแบบนี้ช่วยให้ผู้เขียนโปรแกรมใช้ตัวแปรที่มีชื่อชัดเจนอย่างสม่ําเสมอและรักษาโค้ดที่อ่านง่าย

ในแบบฝึกหัดนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตของเมธอด โดยการทํางานกับวิธีการและตัวแปรชนิดต่างๆ

ทดสอบขอบเขตตัวแปร

คําสั่งที่ประกาศภายนอกบล็อกรหัสใด ๆ เรียกว่าคําสั่งระดับบนสุด ตัวแปรที่ประกาศในคําสั่งระดับบนสุดเรียกว่า 'ตัวแปรส่วนกลาง' ตัวแปรโกลบอลไม่จํากัดขอบเขตใด ๆ และสามารถใช้ได้ทุกที่ตลอดโปรแกรม ตัวแปรส่วนกลางอาจเป็นประโยชน์สําหรับวิธีการต่าง ๆ ที่จําเป็นต้องเข้าถึงข้อมูลเดียวกัน อย่างไรก็ตาม สิ่งสําคัญคือต้องให้ความสนใจกับชื่อตัวแปรในขอบเขตที่แตกต่างกัน

  1. ใน Visual Studio Code Editor ให้ลบโค้ดที่มีอยู่ออกจากแบบฝึกหัดก่อนหน้า

  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
    

สรุป

นี่คือสิ่งที่คุณได้เรียนรู้เกี่ยวกับขอบเขตของเมธอดจนถึงตอนนี้:

  • ตัวแปรที่ประกาศภายในวิธีการ จะสามารถเข้าถึงได้เฉพาะวิธีการนั้นเท่านั้น
  • ตัวแปรที่ประกาศในคําสั่งระดับบนสุดสามารถเข้าถึงได้ตลอดทั้งโปรแกรม
  • วิธีการไม่สามารถเข้าถึงตัวแปรที่กําหนดไว้ภายในวิธีการต่าง ๆ ได้
  • วิธีการสามารถเรียกใช้วิธีการอื่น ๆ ได้