我试图理解这个案例。
假设我想要一个返回类型为List<T>
.
public List<T> GetAllItems(string category)
{ ... }
我被建议改用这个标题:
public IList<T> GetAllItems(string category)
{ ... }
为什么这样?
我进行了一些研究,一个答案可能是灵活性,这意味着如果它实现相同的接口,则可以更改类型。但是动机必须做一些事情来公开界面以防止更改(?),我并没有真正理解它。那么,再次,为什么返回IList
而不是返回更好List
?