我是C#的学习者。你可以解释一下我分配一个是什么区别 收集到界面。
我看到一些例子,初始化
List<int> few = new List<int>() { 12, 123, 211, 200 };
但有些人将集合分配给接口
IList<int> someList=new List<int>(){12,23,56,78};
我们什么时候需要后者呢?。例如,如果你愿意提供一个例子,可以教会我很好。
答案 0 :(得分:4)
通常,您应该选择在公共接口中公开IList
而不是List
,而如果列表仅在方法中使用,那么它将没什么区别:
public IList<int> GetSomeInts()
{
List<int> result = new List<int>() { 12, 123, 211, 200 };
return result;
}
这样,您可以将公共接口与实际在方法中内部使用的具体类型分离。例如,您可以选择使用List<int>
替换Collection<int>
的内部使用而不影响公共接口或其用户,因为它们都实现IList<T>
。
答案 1 :(得分:0)
使用IList时,您只能访问IList中的方法,而不能访问仅在List中的方法(而不是IList中的方法)。
答案 2 :(得分:0)
列表是一个具体的实现。如果您是唯一的消费者,这是最合适的。 IList在多个消费者访问时提供灵活性。因此,如果实施方式发生变化,其他消费者将不会改变。