基于C#的接口基础教程之五(1)

基于C#的接口基础教程之五(1)


作者: 黎宇/yesky  &;nbsp来自:网络


                第五节、实现接口
   
      1、显式实现接口成员
   
      为了实现接口,类可以定义显式接口成员执行体(Explicit interface member implementations)。显式接口成员执行体可以是一个方法、一个属性、一个事件或者是一个索引指示器的定义,定义与该成员对应的全权名应保持一致。
   
    using System ;
    interface ICloneable {
     object Clone( ) ;
    }
    interface IComparable {
     int CompareTo(object other) ;
    }
    class ListEntry: ICloneable, IComparable {
     object ICloneable.Clone( ) {…}
     int IComparable.CompareTo(object other) {…}
    }
   
      上面的代码中ICloneable.Clone 和IComparable.CompareTo 就是显式接口成员执行体。
   
      说明:
   
      1、不能在方法调用、属性访问以及索引指示器访问中通过全权名访问显式接口成员执行体。事实上,显式接口成员执行体只能通过接口的实例,仅仅引用接口的成员名称来访问。
   
      2、显式接口成员执行体不能使用任何访问限制符,也不能加上abstract, virtual, override或static 修饰符。
   
      3、显式接口成员执行体和其他成员有着不同的访问方式。因为不能在方法调用、属性访问以及索引指示器访问中通过全权名访问,显式接口成员执行体在某种意义上是私有的。但它们又可以通过接口的实例访问,也具有一定的公有性质。
   
      4、只有类在定义时,把接口名写在了基类列表中,而且类中定义的全权名、类型和返回类型都与显式接口成员执行体完全一致时,显式接口成员执行体才是有效的,例如:
   
    class Shape: ICloneable {
    object ICloneable.Clone( ) {…}
    int IComparable.CompareTo(object other) {…}
    }
    (2005-6-01:06:35)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

C#中如何处理父窗口及其子窗口标题
.NET语言的选择
使用泛型实现单例提供者(原创翻译)
运用C#实现POP3邮件接收程序(1)
【转载】学习切忌浮躁
用C#实现文件下载器(2)
C#操作RTF文档
C#多线程编程实例实战
WINFORM中使用本地SMTP SERVICE(CDO.Message错误处理)
C#计算汉语拼音码