C# 使用 IList 代替 List
可能的重复:
C# - 列表或 IList
我正在研究一个解决方案,注意到有很多 IList 正在实现。 只是想知道,当您可以使用 List 时,使用 IList 有何意义?
Possible Duplicate:
C# - List<T> or IList<T>
I'm working on a solution have noticed there is a lot fo IList being implemented.
Just wondering, what is the point of using an IList when you can use a List?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因为某些集合可能继承自 IList 而不是 List,例如 ObservableCollection。
Because some collections may inherit from IList and not from List, ObservableCollection for example.
如果您不想继承
List
而只想实现接口,请使用IList
。也许您想返回一个支持
IList
的对象,但实现与调用者无关?在您的情况下,实现
IList
可能会导致不必要的输入,这可能是正确的做法,如果没有更多信息,我无法知道。If you want don't want to inherit
List
and just want to implement the interface useIList
.Perhaps you want to return an object that supports
IList
but the implementation is irrelavant to the caller?In your case implementing
IList
may result in unesscessary typing, it may be right thing to do, I' can't know without more info.您应该始终尝试尽可能使用
界面
,以使用户能够更灵活地选择他们使用的实现。一般来说,IEnumerable
和IQueryable
甚至比IList
更好,因为它们更通用,当然,除非您想有充分的理由限制它。You should always try to use the
interface
where possible to allow the user to have more flexibility on which implementation they use. Generally,IEnumerable
andIQueryable
are even better thanIList
as they're more generic, unless you want to limit this with good reason of course.