我正在尝试理解这种情况。
假设我想要一个返回类型为List<T>
的方法。
public List<T> GetAllItems(string category)
{ ... }
我被建议改为使用此标题:
public IList<T> GetAllItems(string category)
{ ... }
为什么会这样?
我做了一些研究,一个答案可能是灵活性,这意味着如果它实现相同的界面,可以改变类型。但是动机必须做些什么来暴露界面只是为了防止变化(?),我并没有真正理解它。那么,为什么最好还是IList
而不是List
?