我从Java那里得到了这个想法 - 我被告知你应该声明一个这样的集合
List<Object> myList = new ArrayList<Object>();
其中ArrayList
是实现List
接口的类。这一点的目的是通过推广代码来增强可维护性 - 因为,如果您将实现更改为,例如LinkedList<Object>
,您可以毫不费力地实现它。
因此,在C#上进行预测,在C#中做同样的事情被认为是一种好习惯:
IList<Object> list = new List<Object>()
编辑:我刚刚发现C#中的LinkedList甚至没有实现IList接口,所以我想它至少解决了列表的问题
答案 0 :(得分:1)
是的,通常情况下,尽可能使用接口是一种很好的做法。
但容器有两个重要的例外:
"require": {
"behat/behat": "v3.3.1",
"behat/mink": "v1.7.1",
"behat/mink-extension": "v2.2",
"behat/mink-selenium2-driver": "dev-master",
或HashSet<T>
,Dictionary<TK,TV>
进行隐式输入,请注意,如果您打算使用已排序的容器,则可以使用var
和IOrderedSet<T>
。