Vì vậy, tôi đã lập trình được vài năm nay và gần đây đã bắt đầu sử dụng ReSharper nhiều hơn. Một điều mà ReSharper luôn gợi ý cho tôi là "đảo ngược câu lệnh 'nếu' để giảm lồng nhau".
Hãy nói rằng tôi có mã này:
foreach (someObject in someObjectList)
{
if(someObject != null)
{
someOtherObject = someObject.SomeProperty;
}
}
Và ReSharper sẽ đề nghị tôi làm điều này:
foreach (someObject in someObjectList)
{
if(someObject == null) continue;
someOtherObject = someObject.SomeProperty;
}
Có vẻ như ReSharper sẽ LUÔN đề nghị tôi đảo ngược IF, bất kể việc lồng nhau đang diễn ra như thế nào. Vấn đề này là tôi giống như làm tổ trong ít nhất MỘT SỐ tình huống. Đối với tôi có vẻ dễ đọc hơn và tìm hiểu những gì đang diễn ra ở một số nơi. Điều này không phải lúc nào cũng đúng, nhưng đôi khi tôi cảm thấy thoải mái hơn khi làm tổ.
Câu hỏi của tôi là: ngoài sở thích cá nhân hoặc khả năng đọc, có lý do để giảm lồng không? Có một sự khác biệt hiệu suất hoặc một cái gì đó khác mà tôi có thể không nhận thức được?