在API中使用自定义界面或众所周知的标准界面是否更好?

时间:2012-08-07 21:56:55

标签: .net api standards

我有一个简单的界面:

public interface IReadOnlyList<T> : IEnumerable<T>
{
    T this[int index] { get; }
    int Count { get; }
}

我的API用户将被迫使用此界面,而不是他们通常所知的IListIEnumerable。我比IList更喜欢这个,因为它只公开可以使用的成员。我不希望所有IsReadOnly Add() Remove() Insert()未使用的垃圾污染我的API。我更喜欢这个IEnumerable,因为我的用户需要访问索引和计数。这听起来有道理,还是我应该使用更熟悉的IList?为什么呢?

1 个答案:

答案 0 :(得分:1)

如果您的类型实际上不会实现IList的所有成员,那么这将是一个比实现IList更好的解决方案。您可以实现IList并抛出NotImplementedException,但之后您将违反Liskov。