เห็นได้ชัดว่าคำถามของคุณไม่ได้เกี่ยวกับการลัดวงจรเป็นดีหรือไม่ดีโดยทั่วไป แต่เกี่ยวกับสาเหตุที่ VB.NET ให้ผู้ประกอบการที่มีและไม่มีมัน ด้วยสิ่งนี้ในใจคำตอบของ
การประเมินการลัดวงจรเมื่อใดที่ไม่ดี
เป็นเพียง: เมื่อมีการละเมิดกันไปข้างหลัง
ตกลงตอนนี้คุณสามารถพูดได้ว่า VB.NET นั้นไม่เข้ากันได้กับ VB6 หรือ VBA เก่ามาก แต่อย่างน้อยก็มีบางส่วนของภาษา การตัดสินใจของ Microsoft ในการรักษาความหมาย AND และ OR หรือเก่า (โดยไม่ทำให้เกิดการลัดวงจร) ทำให้เกิดข้อผิดพลาดประเภทใหญ่มากเมื่อทำการย้ายโปรแกรม VB เก่าไปยัง VB.NET
ในทางกลับกันนักออกแบบภาษา VB.NET อาจแบ่งปันความคิดเห็นของคุณเกี่ยวกับการลัดวงจรเป็นสิ่งที่ดี เมื่อฉันจำได้อย่างถูกต้องรุ่น VB.NET ก่อนวางจำหน่ายครั้งแรกที่ให้บริการ AND หรือ OR กับการลัดวงจร แต่ความคิดเห็นของนักพัฒนาต้องไม่ดีนัก MS ถอนการตัดสินใจนี้ก่อนที่ VB.NET 1.0 จะปรากฏขึ้น ดังนั้นนักออกแบบจึงตัดสินใจที่จะใช้งานมันในแง่ของคำหลักใหม่ANDALSO
และORELSE
เป็นการแลกเปลี่ยนระหว่างความเข้ากันได้ย้อนหลังและประโยชน์
IMHO นี่เป็นการตัดสินใจที่ดี ฉันต้องพอร์ตโปรแกรมเก่าหลายโปรแกรมในทศวรรษที่ผ่านมาและไม่ต้องทำการวิเคราะห์ผลกระทบอย่างหนักสำหรับนิพจน์เชิงตรรกะทั้งหมดรวมถึงและและ / หรือหรือ (การเล่นสำนวนเจตนา) ทำให้งานนั้นง่ายขึ้นและประหยัดมากขึ้น ในทางกลับกันเมื่อใดก็ตามที่ฉันต้องเขียนนิพจน์ตรรกะใหม่ใน VB.NET ตัวเลือกเริ่มต้นของฉันสำหรับผู้ประกอบการเป็นรูปแบบการลัดวงจรนั่นคือสิ่งที่ฉันเคยใช้จาก C, C ++, C # ฯลฯ และช่วยให้ ฉันจะเขียนสำนวนต่าง ๆ ในรูปแบบที่กระชับยิ่งขึ้น (แม้ว่า ANDALSO ต้องการตัวอักษร 4 ตัวในการพิมพ์)
หากคุณไม่มั่นใจฉันขอแนะนำให้อ่านบทความที่ยอดเยี่ยมของ Joel Spolsky เกี่ยวกับชุดหูฟัง Martianซึ่งเป็นเรื่องเกี่ยวกับสาเหตุที่การตัดสินใจออกแบบช่วงแรก ๆ ในการพัฒนาซอฟต์แวร์ไม่สามารถเพิกถอนได้ง่ายหลังจากส่วนประกอบหรือภาษาหรือ API ที่ถือหุ้นมาถึงฐานผู้ใช้ .