【发布时间】:2013-08-12 00:48:19
【问题描述】:
我已经看到Returning 'IList' vs 'ICollection' vs 'Collection' 和它链接的其他问题,但我仍然对这个问题感到困惑。
为了演示的目的,假设我有一个类,我在其中公开了一个公共方法,如下所示:
public ReadOnlyCollection<Type> GetReadOnlyCollection(IEnumerable<Type> enumerable)
{
List<Type> list = enumerable.ToList();
return new ReadOnlyCollection<Type>(list);
}
要关注CA1002,我的方法应该返回实际的集合类(ReadOnlyCollection、Collection 等)还是它们的接口(IList 、ICollection 等)如果我想专门返回一个ReadOnlyCollection?
【问题讨论】:
-
没有“一个答案”。但是,一般来说,您应该针对接口而不是特定类进行编程。恕我直言...
-
这取决于我猜,如果您打算重用/派生类,那么接口是肯定的,否则主要关注的是性能。海事组织
标签: c# .net generics collections