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