一个显式实现的小例子
public interface ISay { void CanSay(); } public class Man : ISay { /// 显式实现接口 void ISay.CanSay() { Console.WriteLine("New:I can say!"); } public void CanSay() { Console.WriteLine("Old:I can say!"); } } public class Student : Man { public Student() { // 显式实现接口方法子类中不能调用 this.CanSay(); } }
调用:
// 显式实现接口方法必须通过接口调用 ISay man=new Man(); ISay stu = new Student(); // 非显式实现接口方法调用 stu.CanSay(); Console.ReadKey();
一般来说,需要显式实现接口方法的原因是类型中已经有一个方法,该方法与接口方法的名字和参数相同。除此之外,很少有理由需要显式实现接口方法。