【发布时间】:2020-03-17 11:16:18
【问题描述】:
我已经定义了一个函数:public IEnumerable<User> GetAllUsers()
该函数的逻辑是这样的:
var userList = new List<User>
.. logic ...
return userList;
定义返回类型IEnumerable<User> 有什么好处,还是我应该简单明了地定义返回List<User> 类型?
【问题讨论】:
-
这取决于你想用那个列表做什么。 IEnumberable 比 list 更轻量级。
-
@SayusiAndo 这是错误的。 IEnumerable 只是一个接口,无论如何您都将返回一个类的具体实例,它可能是轻量级或重度。改变的是函数(返回值)的签名:如果函数返回一个列表,客户端将能够以不同的方式处理它。这可能是好是坏,请参阅其他建议的回答
-
请勿在公共 API docs.microsoft.com/en-us/dotnet/standard/design-guidelines/… 中使用 List
看看指南,您会发现很多有用的信息。
标签: c#