C#基础:多功能的接口

C#基础:多功能的接口

C#接口有三种用途:html

  1. 提供方法、属性、事件的抽象。这是接口最多见的用途。在面向对象的设计中,接口是软件架构可扩展性的重要保证因素,与抽象类配合使用,使得框架结构具备“被注入”的特性,从而提升系统的扩展性架构

  2. 用做泛型约束。在这种状况下,接口能够仅仅是一个类型,其中能够不带任何方法、属性或事件的定义。请看:框架

    在这个例子中,IChargeable仅仅是为了提供一个泛型约束,确保ChargeFacility中的泛型类型是实现了IChargeable接口的(或者是IChargeable接口自己)。在这种状况下,IChargeable彻底能够不须要提供任何方法、属性或事件的定义。ide

    1. public interface IChargeable   函数

    2. {   post

    3. }   url

    4.   

    5. public class MyCharge : IChargeable { }   spa

    6.   

    7. public class ChargeFacility<TChargeable>    设计

    8.     where TChargeable : IChargeable { }  orm

  3. 接口用做开发约束。因为反射的引入,在某些应用场合,程序自己极可能不是经过判断某个类是否实现了某个接口,再去调用给定的函数;程序彻底能够使用反射来找到它所须要调用的函数而后使用MethodInfo.Invoke方法去调用这个函数。那么这样一来,开发人员有可能忘记在类中实现这些特定的方法,而致使程序出现问题。因而能够添加一个接口,在其中定义好必须实现的函数声明,而后经过Best Practice的方式要求开发人员在这些类上实现这个接口,那么开发人员也就不得不去填写函数实现体了。

相关文章
相关标签/搜索