แบบฝึกหัด - ลบบล็อกรหัสออกจากคําสั่งถ้า

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

นักพัฒนาซอฟต์แวร์ชอบมันเมื่อพวกเขาสามารถเขียนโค้ดที่ช่วยประหยัดการกดแป้นพิมพ์และพื้นที่ภาพโดยไม่ทําให้อ่านง่ายขึ้น ใช้วลี "น้อยกว่าเป็นมากกว่า" ในกระบวนการพัฒนาเท่านั้นเมื่อทําให้โค้ดของคุณอ่านได้และเข้าใจได้ง่ายขึ้น

ถ้าบล็อกรหัสต้องการโค้ดเพียงบรรทัดเดียว มีโอกาสที่คุณไม่จําเป็นต้องกําหนดบล็อกรหัสอย่างเป็นทางการโดยใช้วงเล็บปีกกา แม้ว่าในทางเทคนิคแล้ว คุณไม่จําเป็นต้องแยกโค้ดของคุณเป็นหลายบรรทัด แต่การรวมคําสั่งบนบรรทัดเดียวสามารถทําให้โค้ดของคุณอ่านยาก

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

สร้างตัวอย่างของคําสั่ง if ที่ใช้บล็อกรหัส

  1. ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs ที่ว่างเปล่าเปิดอยู่ในรหัส Visual Studio

    หากจําเป็น ให้เปิด Visual Studio Code แล้วทําตามขั้นตอนต่อไปนี้เพื่อเตรียมไฟล์ Program.cs ในตัวแก้ไข:

    1. บนเมนู ไฟล์ เลือก เปิดโฟลเดอร์

    2. ใช้กล่องโต้ตอบ เปิดโฟลเดอร์ เพื่อนําทางไปยัง และจากนั้นเปิดโฟลเดอร์ CsharpProjects

    3. ในแผง Visual Studio Code EXPLORER ให้เลือก Program.cs

    4. บนเมนู การเลือก รหัส Visual Studio เลือก เลือกทั้งหมด แล้วกดปุ่มลบ

  2. พิมพ์โค้ดต่อไปนี้ลงใน Visual Studio Code Editor:

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ

    ใส่ dotnet run จากพร้อมท์คําสั่งเทอร์มินัล เพื่อเรียกใช้โค้ดของคุณ

  4. ตรวจสอบว่าคุณเห็นผลลัพธ์ต่อไปนี้:

    True
    

    รหัสของคุณแสดงจุดเริ่มต้นที่ดี แต่คุณมีบล็อกรหัสที่มีโค้ดบรรทัดเดียว ในกรณีนี้ คือการกําหนดบล็อกโค้ดที่จําเป็นหรือไม่

ลบวงเล็บปีกกาออก

โค้ดข้างต้นจะดําเนินการบล็อกรหัสเมื่อ flag เป็นtrue เนื่องจากบล็อกรหัสนี้มีบรรทัดรหัสเดียว คุณมีตัวเลือกในการลบวงเล็บปีกกาออก

  1. อัปเดตโค้ดของคุณใน Visual Studio Code Editor ดังนี้:

    bool flag = true;
    if (flag)
        Console.WriteLine(flag);
    

    หมายเหตุ

    การลบวงเล็บปีกกาจะไม่เปลี่ยนแปลงข้อเท็จจริงที่เป็น Console.WriteLine(flag); บล็อกโค้ดสําหรับ if คําสั่ง

  2. บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ

  3. โปรดสังเกตว่าเอาต์พุตเหมือนกับก่อนหน้านี้

    คุณยังคงควรเห็นผลลัพธ์ต่อไปนี้:

    True
    

    อย่างไรก็ตาม มีโค้ดน้อยกว่าสองบรรทัด สิ่งสําคัญที่สุดคือ ด้วยบรรทัดโค้ดด้านล่างเยื้อ if ง โค้ดของคุณยังคงอ่านได้ง่าย

ตรวจสอบความยากง่ายในการอ่านของฟอร์มบรรทัดเดียวถ้าคําสั่ง

ในขั้นตอนนี้ คุณกําลังจะดูกรณีที่ความสามารถในการอ่านโค้ดอาจได้รับผลกระทบในทางลบ

เนื่องจากทั้ง if คําสั่งและการเรียกเมธอด Console.WriteLine() เป็นแบบสั้น คุณอาจถูกชักจูงให้รวมไว้ในบรรทัดเดียว ท้ายสุด ไวยากรณ์ C# สําหรับ if คําสั่งช่วยให้คุณสามารถรวมคําสั่งด้วยวิธีนี้ได้

  1. อัปเดตโค้ดของคุณใน Visual Studio Code Editor ดังนี้:

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ

  3. โปรดสังเกตว่าเอาต์พุตยังคงเหมือนเดิม

  4. ใช้เวลาสักครู่เพื่อพิจารณาความยากง่ายในการอ่านโค้ด

    ลองนึกถึงตัวอย่างโค้ดสองรายการก่อนหน้าที่ซ้อนอยู่ภายในส่วนที่มีขนาดใหญ่ขึ้นของโค้ด การรวมคําสั่งโค้ด (เหมือนกับที่คุณทําในขั้นตอนที่ 4) อาจทําให้อ่านยากขึ้น

    ifเมื่อใช้คําสั่งที่มีบล็อกโค้ดแบบคําสั่งเดียว Microsoft ขอแนะนําให้คุณพิจารณาหลักทั่วไปเหล่านี้:

    • อย่าใช้ฟอร์มบรรทัดเดียว (ตัวอย่างเช่น: ถ้า (แฟล็ก) Console.WriteLine(ค่าสถานะ);
    • ใช้วงเล็บปีกกาเสมอและจําเป็นถ้าบล็อกของคําสั่งผสมถ้า/.../อื่นๆ ใช้วงเล็บปีกกาหรือถ้าเนื้อหาคําสั่งเดียวครอบคลุมหลายบรรทัด
    • วงเล็บปีกกาอาจถูกเว้นไว้เฉพาะเมื่อเนื้อความของทุกบล็อกที่เกี่ยวข้องกับคําสั่งผสม if/else ถ้า/.../อื่นๆ อยู่ในบรรทัดเดียว
  5. เพื่อตรวจสอบผลกระทบของความสามารถในการอ่านสําหรับโครงสร้าง if-else-else ที่ใหญ่กว่า ให้อัปเดตโค้ดของคุณดังนี้:

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. บันทึกไฟล์โค้ดของคุณ จากนั้นใช้ Visual Studio Code เพื่อเรียกใช้โค้ดของคุณ

    เมื่อคุณเรียกใช้โค้ด ควรสร้างเอาต์พุตต่อไปนี้:

    Found Steve
    

    โค้ดทํางาน แต่บรรทัดของรหัสเหล่านี้หนาแน่นและยากต่อการอ่าน คุณอาจต้องการจัดรูปแบบรหัสใหม่เพื่อรวมตัวแบ่งบรรทัดหลังจากifคําสั่ง , else ifและelse

  7. เปรียบเทียบโค้ดที่คุณเรียกใช้ด้วยโค้ดต่อไปนี้:

    string name = "steve";
    
    if (name == "bob")
        Console.WriteLine("Found Bob");
    else if (name == "steve") 
        Console.WriteLine("Found Steve");
    else
        Console.WriteLine("Found Chuck");
    

    โปรดสังเกตว่าการอ่านตัวอย่างโค้ดที่สองนั้นง่ายเพียงใด

สรุป

นี่คือบางสิ่งที่สําคัญที่ต้องทราบเกี่ยวกับ if บล็อกโค้ดคําสั่งและความสามารถในการอ่านได้:

  • ถ้าคุณตระหนักว่ามีรหัสบรรทัดเดียวเท่านั้นที่แสดงอยู่ภายในบล็อกรหัสของ if-elseif-else คําสั่ง คุณสามารถลบวงเล็บปีกกาของบล็อกรหัสและช่องว่างสีขาวได้ Microsoft แนะนําให้ใช้วงเล็บปีกกาอย่างสม่ําเสมอสําหรับบล็อก if-elseif-else โค้ดทั้งหมดของคําสั่ง (ไม่ว่าจะมีอยู่หรือลบออกอย่างสม่ําเสมอ)
  • ลบวงเล็บปีกกาของบล็อกโค้ดออกเมื่อทําให้โค้ดอ่านได้ง่ายขึ้น สามารถรวมวงเล็บปีกกาได้เสมอ
  • เอาตัวดึงข้อมูลบรรทัดออกเท่านั้นถ้าจะทําให้โค้ดอ่านได้ง่ายขึ้น Microsoft แนะนําว่าโค้ดของคุณจะอ่านได้ง่ายขึ้นเมื่อวางแต่ละคําสั่งบนบรรทัดโค้ดของตนเอง