定义一个接口: public interface IA
{
void GetValue();
}
请问下面这两种接口实现是相同的功能吗?有什么区别吗?
// 第一种
public class A : IA
{
public void GetValue()
{
}
}
//第二种
public class A : IA
{
void IA.GetValue()
{
}
}
{
void GetValue();
}
请问下面这两种接口实现是相同的功能吗?有什么区别吗?
// 第一种
public class A : IA
{
public void GetValue()
{
}
}
//第二种
public class A : IA
{
void IA.GetValue()
{
}
}
这种格式,是为了去掉歧义。 如果一个类实现两个接口,这两个接口定义了同样的函数。会有歧义,例如 public interface IA
{
void GetValue();
}
public interface IB
{
void GetValue();
}public class A : IA, IB
{
void IA.GetValue()
{
} void IB.GetValue()
{
} }
不仅仅是这样吧,类似第二种方法的话 //第二种
public class A : IA
{
void IA.GetValue()
{
}
}在外面根本无法调用,void main()
{
A a = new A();
a.GetValue();//根本调用不到
}
我的意思和你差不多,我刚才加了一个public 在外面还是调用不到
public interface IA
{
void GetValue();
} public class A :IA
{
public void IA.GetValue()
{
}
} public class AA : IA
{
public AA()
{
A a = new A(); a.GetValue();
}
}
这样写确实调用不到啊,a.GetValue()
显示实现只有接口可以访问。
隐式的话外部可以访问。
显式的好处:
1:隐藏代码的实现
2:在使用接口访问的系统中,调用者只能通过接口调用而不是底层的类来访问。 这个在SOA架构的系统中很突出。
最后:接口默认就是public的。