为什么ConcurrentDictionary没有显式实现Add方法?

时间:2019-01-14 11:01:08

标签: c# concurrentdictionary

为什么没有 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的实现。 有什么想法吗?

0 个答案:

没有答案