dot net中接口的隐式和显式实现是什么?

时间:2010-08-30 11:40:21

标签: .net interface

什么是接口的隐式和显式实现?它在哪种情况下使用?为什么需要?在点网

2 个答案:

答案 0 :(得分:1)

在显式实现中,您既可以使用接口的名称,也可以使用您正在实现的方法的名称。它允许您在类中使用多个具有相同名称的方法(例如,如果类实现了多个接口)

public interface I
{
  void A();
}

public class myClass: I
{
  public void I.A()
  {
    // do some stuff
  }
}

阅读本文,它非常清楚地解释了为什么你需要明确的实现:http://blogs.msdn.com/b/mhop/archive/2006/12/12/implicit-and-explicit-interface-implementations.aspx

答案 1 :(得分:1)

隐式实现是指您实现接口成员而不同时指定接口名称。

public interface IFoo 
{
    void Bar();
}

public class ClassA : IFoo 
{
    //this is implicit
    public void Bar() 
    {

    }
}

public class ClassB : IFoo 
{
    //this is explicit:
    void IFoo.Bar()
    {

    }
}

当您实现具有相同名称和签名的函数/属性的两个(或更多)接口时,您需要显式实现。在这种情况下,需要特别告知编译器哪个实现属于哪个接口。