Misalkan saya punya metode
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
Saya telah membaca bahwa akan lebih baik untuk mengembalikan antarmuka (baik IList
atau IEnumerable
) daripada mengembalikan List
. Beberapa argumen yang saya dengar untuk melakukannya adalah menyembunyikan data, dan memberikan pengembang API fleksibilitas untuk mengubah representasi internal data di kemudian hari.
Kekhawatiran saya hanya mengembalikan sebuah IEnumerable
adalah bahwa Anda kehilangan fungsionalitas, seperti akses acak dan Count
properti.
Saya tahu bahwa menerima IEnumerable
sebagai parameter masuk akal, karena memberikan konsumen fleksibilitas terbaik untuk mengirim data ke metode saya, persyaratan minimal untuk metode untuk beroperasi.
Apa praktik terbaik untuk tipe pengembalian?