2014-05-12 130 views
1

为什么这里的接口ILIST用于创建列表类型的对象为什么使用接口IList创建List类型的对象?

IList<BankAccountView> bankAccountViews = new List<BankAccountView>(); 

时,这是可以做到这样的

List<BankAccountView> bankAccountViews = new List<BankAccountView>(); 
+0

是您关于这个继承或特别是约一个程序员优先选择的问题? – Sayse

+0

这取决于情况。这个问题没有单一的答案。它是一个字段还是一个变量?你在做什么?是否有其他地方以不同的方式初始化相同的字段/变量? –

+0

@Sayse这是关于继承 – Prateik

回答

0

所以一个集合,写它不采取一个列表,而是一个IList,一个ICollection或IEnumerable。即使对于异构列表,通用接口仍然可以工作,因为System.Object也可以是T。如果您决定在路上继续使用堆栈或其他数据结构,这样做可以节省您的头痛。如果您在函数中需要做的只是foreach,IEnumerable实际上就是您应该要求的。

另一方面,当从一个函数中返回一个对象时,你希望为用户提供尽可能多的操作,而不必四处投掷。那么在这种情况下,如果它是一个List内部的,则返回一个副本作为List。

阅读链接:When to use IList and when to use List

+0

谢谢..链接是有用的 – Prateik

相关问题