什么是接口的隐式和显式实现?它在哪种情况下使用?为什么需要?在点网
答案 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()
{
}
}
当您实现具有相同名称和签名的函数/属性的两个(或更多)接口时,您需要显式实现。在这种情况下,需要特别告知编译器哪个实现属于哪个接口。