假设我有一个方法
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
我已经读过,返回一个接口(IList
或者IEnumerable
)比返回a 更好List
。我听到的一些说法是,它隐藏了数据,并使API开发人员可以灵活地在以后更改数据的内部表示形式。
我只返回an的担心IEnumerable
是您失去了功能,例如随机访问和Count
属性。
我知道接受a IEnumerable
作为参数是有意义的,因为它为用户提供了将数据发送到我的方法的最佳灵活性,这是方法操作的最低要求。
返回类型的最佳实践是什么?