我已经看到Returning 'IList' vs 'ICollection' vs 'Collection'以及它链接到的其他问题,但我仍然对这个问题感到困惑。
为了演示的目的,我们假设我有一个类,我在其中公开了一个公共方法,如下所示:
public ReadOnlyCollection<Type> GetReadOnlyCollection(IEnumerable<Type> enumerable)
{
List<Type> list = enumerable.ToList();
return new ReadOnlyCollection<Type>(list);
}
要遵循CA1002 ,如果我希望具体返回 a ,我的方法应该返回实际的集合类(ReadOnlyCollection
、Collection
等)还是它们的接口(IList
、等) ?ICollection
ReadOnlyCollection