可以从一个或多个接口派生类。
如果多个接口的方法具有相同的签名,则该类必须明确实现该接口的此类成员。
到目前为止,根据我的经验,我从未遇到过必须从具有相同签名的方法的接口派生的情况。
.NET框架或任何公开可用的库中是否有显式接口实现的示例?
答案 0 :(得分:2)
我认为最常见的情况是IEnumerable
和IEnumerable<T>
。
两者都声明方法GetEnumerator()
。
这就是为什么在实施IEnumerable<T>
时,您始终需要2个GetEnumerator()
方法来实现(IEnumerable<T>
继承自IEnumerable
):
public IEnumerator<T> GetEnumerator() // From IEnumerable<T> interface
{
// Code
}
IEnumerator IEnumerable.GetEnumerator() // From IEnumerable interface
{
// Code
}
答案 1 :(得分:2)
Dictionary<Key, Value>明确实施ICollection<KeyValuePair<Key,Value>>
。实现诸如IEnumerable<T>
之类的通用接口的类也明确地实现非泛型对应物。