快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

第十五章 接口[《.net框架程序设计》读书笔记]

第十五章 接口

摘要:

接口的应用及完全限定名方法定义接口的应用。



一、 接口与继续

l C#支持单实现继续和多接口继续

l 接口中可以定义:事件、无参属性(属性)、含参属性(索引器);C#不答应接口定义任何静态成员(CLR却答应定义静态成员);CLR不答应接口定义实例字段和构造器。

l 缺省为public abstract 方式,但不可用任何修饰符进行修饰(包括public)

l 将值类型转变为接口类型(假设其实现了某个接口),则值类型被装箱为引用类型,以调用其中的接口方式。



实现接口继续或实现继续的原则:

l 存在IS-A关系使用实现继续,存在CAN-DO关系使用接口继续

l 实现继续可继续父类型的实现,由于接口中没有定义方式的实现,因此继续后必须实现方式

l 考虑到每个人对接口实现的不同,使用实现继续可同一部分功能的实现

l 为父类型添加方式可能不影响使用继续自该类型实现的用户,而为接口添加方式导致用户必须为新方式添加实现

二、 利用接口改变已装箱类型中的字段

实际上是将已装箱类型转型为接口类型,然后通过调用方式进行值改变。

因为对已装箱类型进行拆箱到原值类型将在堆栈上声称新的值类型,调用这个新的值类型的方式不能改变以装箱类型的值。



三、 实现多个有一样方式的接口

使用 接口名.方式名 的形式声明实现了那个接口的方式。成为 完全限定接口名,这样定义的方式被认为是私有方式,不能使用类型本身调用;当将类型转变为接口类型时,完全限定接口名定义的方式又变成一个公有方式。(比较奇异,也很有用);使用完全限定接口名定义的方式不能使用任何访问修饰符。



四、 显示接口成员实现

问题的提出:通常接口接受的参数为Object,这样的参数非强类型安全的,可能需要在我们自定义类型的接口实现中定义强类型安全的方式,同时也需要实现“接口合同”

问题解决:通过上面的完全限定接口名方法定义接口方式,可达到这样的效果。

长处:获得强类型支持,可在编译期发现类型不匹配问题,而不是到运行期。同时,调用自定义的方式不必进行装箱操作,提高了效率。

缺点:由于我们在类型中隐藏了接口实现(必须将转型为接口才能暴露出接口定义的方式),因此可能对使用造成不便,因此应该慎用该方式。




返回类别: 教程
上一教程: 如何保护我们的 .NET 程序集?
下一教程: MyCollege.Net系统规划与总体设计

您可以阅读与"第十五章 接口[《.net框架程序设计》读书笔记]"相关的教程:
· 第十章 属性[《.net框架程序设计》读书笔记]
· 第十二章 委托[《.net框架程序设计》读书笔记]
· 第十四章 数组[《.net框架程序设计》读书笔记]
· 第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]
· 第十一章 事件[《.net框架程序设计》读书笔记]
    微笑服务 优质保证 索取样品