Giả sử tôi có một phương pháp
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
Tôi đã đọc được rằng sẽ tốt hơn nếu trả về một giao diện (hoặc IList
hoặc IEnumerable
) thay vì trả lại a List
. Một số đối số mà tôi đã nghe để làm như vậy là nó che giấu dữ liệu và cung cấp cho nhà phát triển API tính linh hoạt trong việc thay đổi biểu diễn bên trong của dữ liệu vào một ngày sau đó.
Mối quan tâm của tôi về việc chỉ trả lại một IEnumerable
là bạn mất chức năng, chẳng hạn như truy cập ngẫu nhiên và Count
tài sản.
Tôi biết rằng việc chấp nhận IEnumerable
như một tham số có ý nghĩa, vì nó mang lại cho người tiêu dùng sự linh hoạt tốt nhất để gửi dữ liệu đến phương thức của tôi, tập hợp các yêu cầu tối giản để phương thức hoạt động.
Thực hành tốt nhất cho loại trở lại là gì?