将泛型用作函数的返回值是不好的做法吗?

cod*_*ath 2 .net c# generics

有人告诉我这个,但我没有在任何地方看到这个,我已经全部使用它,我不明白为什么这是不好的做法.

我的意思是拥有以下功能的例子:

public List<SomeCustomeType> GetListOfStuff()
{
}
Run Code Online (Sandbox Code Playgroud)

要么

public void DoSomeStuff(List<SomeCustomeType> param)
{

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么这是不好的做法或不应该使用?谢谢!

Ode*_*ded 6

可以在框架中使用Closed和Open泛型类型,并且应该使用它们.如果使用了不正确的类型或暴露功能,你不需要,那么它可能是不好的做法-比如,这是更好地回报IList<T>则List<T>是,那么你是不依赖于实现的,可以使用实现任何类型IList<T>.

类似地,您应该只使用公开所需minumun的类型 - IEnumerable<T>比IList<T>只需要枚举返回列表时更好地返回.