Trong một cuộc tranh luận liên quan đến các biến trả về, một số thành viên của nhóm thích một phương thức trả kết quả trực tiếp cho người gọi, trong khi những người khác thích khai báo một biến trả về sau đó được trả về cho người gọi (xem ví dụ mã bên dưới)
Đối số sau này là nó cho phép nhà phát triển gỡ lỗi mã tìm giá trị trả về của phương thức trước khi trả về cho người gọi, do đó làm cho mã dễ hiểu hơn: Điều này đặc biệt đúng khi các lệnh gọi phương thức được nối tiếp.
Có bất kỳ hướng dẫn nào là hiệu quả nhất và / hoặc có bất kỳ lý do nào khác tại sao chúng ta nên áp dụng một phong cách hơn một phong cách khác không?
Cảm ơn
private bool Is2(int a)
{
return a == 2;
}
private bool Is3(int a)
{
var result = a == 3;
return result;
}
stloc.0
và ldloc.0
trong phiên bản thứ hai). Nhưng tôi nghĩ điều đó chỉ xảy ra trong chế độ Gỡ lỗi. Và dù sao nó cũng không thực sự quan trọng.
a = b = c;
và a == b == c
, tôi sẽ tránh viết một cái gì đó trông giống như a = b == c
nếu bạn có thể. Khi tôi lần đầu tiên nhìn thấy một dòng mã như vậy, tôi phải mất vài giây để tìm hiểu chuyện gì đang xảy ra. Mã đó nổi bật. Tôi muốn tát dấu ngoặc đơn xung quanh a == 3
, nhưng StyleCop không thích nó - một lý do chính đáng để sử dụng phiên bản số một. Một cái gì đó khác: đây thực chất là một lambda, chẳng hạn như a => (a == 3)
. Tại sao thêm một dòng mã vào một hàm tầm thường đã bị cồng kềnh?
result
trước khi trả lại.