メソッドがあるとしましょう
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
を返すのではなく、インターフェイス(IList
またはのいずれかIEnumerable
)を返す方がよいことを読みましたList
。私がそうすることについて聞いたいくつかの議論は、それがデータを隠すことであり、API開発者に後日データの内部表現を変更する柔軟性を与えます。
を返すだけの私の懸念IEnumerable
は、ランダムアクセスやCount
プロパティなどの機能を失うことです。
IEnumerable
メソッドとして動作するための最小限の要件である、メソッドにデータを送信するための最高の柔軟性を消費者に与えるため、パラメーターとしてを受け入れることには意味があることを知っています。
戻り値型のベストプラクティスは何ですか?