为什么没有 ConcurrentDictionary 显式实现Add方法,因为它应该扩展定义该方法的IDictionary<TKey,TValue>
:
void Add(TKey key, TValue value);
我读到这归功于“显式接口实现”。
据我所知,当我从接口派生一个类时,对于我忘记在该类中实现的任何接口方法,都会收到错误消息。
我注意到了类似的问题。 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interfaces/explicit-interface-implementation 该链接大概包含一个“显式接口实现”的类似示例,该示例非常容易理解:一个类继承自定义相同方法的2个接口; 为了区分这两种不同的方法,在从两个接口派生的类中,我们有两个方法,每个方法都以接口名称作为前缀。简单:
public class SampleClass : IControl, ISurface
{
void IControl.Paint() // IControl interface defines method **Paint**
{
System.Console.WriteLine("IControl.Paint");
}
void ISurface.Paint() // ISurface interface defines another method, also called **Paint**
{
System.Console.WriteLine("ISurface.Paint");
}
}
此示例未展示我的情况,因为在ConcurrentDictionary中,我找不到以接口名称作为前缀或没有前缀的Add的实现。 有什么想法吗?