《CLR Via C#(第三版)》 第十三章

本文深入探讨了C#中的接口概念,包括如何定义接口、继承接口、实现显式接口方法及泛型接口等内容,并讨论了在设计时选择基类与接口的原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第十三章 接口

13.2 定义接口

C#禁止接口定义任何一种静态成员。

根据约定,接口类型名字要以大写字母I开头,目的是方便在源代码中辨认接口类型。

接口继承可以看成是其他接口的契约包括到一个接口中。

13.3 继承接口

C#编译器要求将用于一个接口的方法标记为public。

13.5 隐式和显式接口方法实现

在C#中定义一个显式接口方法时,不允许指定可访问性(比如public或private)。但是编译器生成方法的元数据时,其可访问性被自动设为false,防止其他代码在使用类的实例时直接调用接口方法。要调用接口方法,只能通过接口类型的一个变量来进行。

一个现实接口方法不能被标记为virtual,所以它不能被重写。

13.6 泛型接口

首先,泛型接口提供了出色的编译时类型安全性。

第二,处理值类型时,装箱次数会少很多。

第三,类可以实现同一个接口若干次,只要每次使用不同的类型参数。

13.11 设计:基类还是接口

IS-A vs. CAN-DO关系 类型只能继承一个实现。如果派生类型不具有与基类型的IS-A关系,就不应使用基类,而应使用接口。接口意味着CAN-DO的关系。如果多种对象类型都具有CAN-DO功能,就应该使用接口。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值