ดังนั้นฉันจึงเขียนโปรแกรมมาหลายปีแล้วและเพิ่งเริ่มใช้ ReSharper มากขึ้น สิ่งหนึ่งที่ ReSharper แนะนำให้ฉันเสมอคือ "กลับด้าน" ถ้า "คำสั่งเพื่อลดการซ้อน"
สมมติว่าฉันมีรหัสนี้:
foreach (someObject in someObjectList)
{
if(someObject != null)
{
someOtherObject = someObject.SomeProperty;
}
}
และ ReSharper จะแนะนำให้ฉันทำสิ่งนี้:
foreach (someObject in someObjectList)
{
if(someObject == null) continue;
someOtherObject = someObject.SomeProperty;
}
ดูเหมือนว่า ReSharper จะแนะนำให้ฉันย้อนกลับ IFs ไม่ว่าจะทำรังมากแค่ไหนก็ตาม ปัญหานี้คือฉันชอบทำรังในสถานการณ์อย่างน้อยบางครั้ง สำหรับฉันนั้นดูเหมือนง่ายต่อการอ่านและเข้าใจว่าเกิดอะไรขึ้นในบางสถานที่ นี่ไม่ใช่กรณีเสมอไป แต่ฉันรู้สึกสะดวกสบายในการทำรังในบางครั้ง
คำถามของฉันคือ: นอกเหนือจากความชอบส่วนตัวหรือความสามารถในการอ่านมีเหตุผลที่จะลดการทำรังหรือไม่? มีความแตกต่างของประสิทธิภาพการทำงานหรืออย่างอื่นที่ฉันอาจไม่ทราบหรือไม่?