.NET框架中的任何类或MSDN库中记录的任何其他类是否明确实现了同一通用接口的两个实例?
例如,以下类显式实现了IEnumerable<int>
和IEnumerable<string>
。
public class T : IEnumerable<int>, IEnumerable<string>
{
IEnumerator<string> IEnumerable<string>.GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator<int> IEnumerable<int>.GetEnumerator()
{
throw new NotImplementedException();
}
}
对于任何想知道的人,我正致力于解决Sandcastle帮助文件生成器无法解析继承的显式实现的接口方法的MSDN文档URL的问题。例如,扩展Dictionary<TKey, TValue>
的类继承ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKey, TValue>)
的显式实现。使用MTPS查找此方法时,contentIdentifier如下:
由assetid:M:System.Collections.Generic.Dictionary`2.System#类别#通用#ICollection的{的Ť}#包含(System.Collections.Generic.KeyValuePair {`0`1 })
如果你在那里注意到粗体 T ,你会发现这种语法无法区分我上面提到的具体情况。通过在框架中查找现有类,我可以使用MTPS服务来检查在这种特定类型的冲突情况下使用的内容标识符,从而允许我确保这种确实罕见但理论上可能的边缘情况的正确行为。
答案 0 :(得分:3)
System.Workflow.Activities.ReceiveActivity
同时实施IActivityEventListener<ActivityExecutionStatusChangedEventArgs>
和IActivityEventListener<QueueEventArgs>
。
System.Net.PeerToPeer.Collaboration.PeerNearMe
和PeerContact
分别实现两个不同的IEquatable<T>
s(通过基础Peer
类)
System.Xml.Xsl.Runtime.XmlQueryNodeSequence
实施IList<XPathItem>
和IList<XPathNavigator>