为什么Dictionary <t,v =“”>显式实现ICollection <keyvaluepair <t,v =“”>&gt;当它已经被IDictionary <t,v> </t,v> </keyvaluepair <t,> </t,>继承时

时间:2014-01-23 22:02:20

标签: c# .net dictionary

最近我的朋友问过Dictionary<T, V> ICollection<KeyValuePair<T, V>>IDictionary<T,V>已经继承Dictionary<T, V>时明确实施了什么?

我意识到我也不知道答案。以下是官方文档的链接:

IDictionary<T,V> - http://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx {{1}} - http://msdn.microsoft.com/en-us/library/s4ys34ea(v=vs.110).aspx

为什么会这样做?是否有特定的架构模式或其他什么?

1 个答案:

答案 0 :(得分:9)

这似乎只是隐含地显示所有已实现的接口的情况。

我做了以下示例来测试它。我的源代码是:

public class Class1 : ITest
{
    public void Testing()
    {
        Console.WriteLine("Test");
    }

    public void Testing2()
    {
        Console.WriteLine("Test2");
    }
}

public interface ITest : ITest2
{
    void Testing();
}

public interface ITest2
{
    void Testing2();
}

现在进入Reflector.Net并反编译我得到了这个:

public class Class1 : ITest, ITest2
{
    public void Testing()
    {
        Console.WriteLine("Test");
    }

    public void Testing2()
    {
        Console.WriteLine("Test2");
    }
}
相关问题