我工作的一个解决方案已经注意到有很多FO的IList正在实施。 只是想知道,当你可以使用列表时使用IList有什么意义?
0
A
回答
1
因为某些集合可能继承自IList而不是List,例如ObservableCollection。
1
如果你不想继承List
,只是想实现接口使用IList
。
也许你想返回一个支持IList
的对象,但实现与调用者无关?
在你的情况下,实施IList
可能会导致unesscessary打字,这可能是正确的做法,我不知道没有更多的信息。
1
您应该尽可能使用interface
,以便用户在其实现方式上具有更大的灵活性。一般来说,IEnumerable
和IQueryable
甚至比IList
更好,因为它们更通用,除非您想要当然有充分的理由限制它。
相关问题
- 1. 如何在C#中使用xsd.exe生成列表而不是数组List使用
- 2. 使用Directory.GetDirectories(“c:\\”)时,为什么不能使用List <string>而不是string []?
- 3. 多态性:为什么使用“List list = new ArrayList”而不是“ArrayList list = new ArrayList”?
- 4. XmlSerializer - IEnumerable或IList作为LIst
- 5. 为什么Socket.Select(...)需要IList而不是(也)IList <Socket>?
- 6. 我可以使用IList而不是ISet吗?
- 7. WCF - 使用IList/IDictionary而不是数组更好吗?
- 8. 如何指定我想在Modello中使用Set而不是List?
- 9. XSD:使用Visual Studio xsd.exe不生成Array []而不是List <>
- 10. List,IList和IEnumerable之间的比较
- 11. 为什么使用接口IList创建List类型的对象?
- 12. 为什么我的绘图工作与IList,而不是与真正的大师的简单问题LIst
- 13. List,IList,IEnumerable,IQueryable,ICollection,这是最灵活的返回类型?
- 14. 为什么使用packed * args/** kwargs而不是传递list/dict?
- 15. 为什么Redis SortedSet使用Skip List而不是平衡树?
- 16. 表达式返回List而不是Array
- 17. LinkedList subList返回List而不是LinkedList?
- 18. IList <InterfaceType>为List <ImplementsInterfaceType>?
- 19. Telerik OpenAccess。使用其他类型的集合而不是IList <T>
- 20. 可以使用IList但不是列表中的泛型方法
- 21. 使用List Indicies不是面向对象的? c#
- 22. 'list :: list'命名构造函数,而不是类型
- 23. 使用指针而不是迭代器清除std :: list中的元素
- 24. 为什么STL中List的迭代器使用(* node).data而不是node-> data?
- 25. 是否可以使用IList(Of IList(Of String))?
- 26. 从Python使用C++? (而不是提升)
- 27. Combobox使用TypeConverter而不是toString C#
- 28. C++ _bstr_t而不是使用字符串
- 29. C++优化,使用>而不是<=
- 30. C#TableAdapter.Update()使用UPDATE而不是INSERT
找到了一个链接到同一个问题: http://stackoverflow.com/questions/400135/c-listt-or-ilistt – David
请提供具体回答一个具体问题。 – Jodrell
重复是你在'相关问题'中得到的第一个结果(忽略这个),当你试图问这个问题时......;)这就是为什么你在标题中提问你的问题,并解释任何细节描述框... –