Suponha que eu tenha um método
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
Eu li que seria melhor retornar uma interface ( IList
ou IEnumerable
) em vez de retornar a List
. Alguns argumentos que ouvi falar disso são que ocultam dados e oferecem ao desenvolvedor da API a flexibilidade de alterar a representação interna dos dados posteriormente.
Minha preocupação em apenas retornar um IEnumerable
é que você perde funcionalidades, como acesso aleatório e a Count
propriedade.
Sei que aceitar IEnumerable
um parâmetro faz sentido, pois oferece ao consumidor a melhor flexibilidade para enviar dados ao meu método, o conjunto minimalista de requisitos para o método operar.
Qual é a melhor prática para o tipo de retorno?