有人告诉我这个,但我没有在任何地方看到这个,我已经全部使用它,我不明白为什么这是不好的做法.
我的意思是拥有以下功能的例子:
public List<SomeCustomeType> GetListOfStuff()
{
}
Run Code Online (Sandbox Code Playgroud)
要么
public void DoSomeStuff(List<SomeCustomeType> param)
{
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么这是不好的做法或不应该使用?谢谢!
可以在框架中使用Closed和Open泛型类型,并且应该使用它们.如果使用了不正确的类型或暴露功能,你不需要,那么它可能是不好的做法-比如,这是更好地回报IList<T>则List<T>是,那么你是不依赖于实现的,可以使用实现任何类型IList<T>.
类似地,您应该只使用公开所需minumun的类型 - IEnumerable<T>比IList<T>只需要枚举返回列表时更好地返回.