C#接口

接口可以理解为对一组方法声明进行的统一的命名,但这些方法没有提供任何实现。需要的是把一组方法声明在一个接口中,继承该接口的类都需要实现这些方法。如果需要一些类型来比较大小,可以定义一个接口并定义比较方法,然后让这些类型去继承该接口并实现自己的比较方法。接口和类的定义是相似的,但是使用的关键字不一样,接口使用的interface,而类使用的是class。

interface ICustomCompare

{

}

在接口中添加一个比较方法让继承该接口的类实现里面的方法,方法不能添加任何访问修饰符,因为在接口中的方法默认为public,如果显式指定修饰符会出现编译时错误。它可以包含属性、事件、索引器,但不包含字段、运算符重载、实例构造函数和析构函数。

C#接口

 

定义一个类来实现接口方法,CompareTo方法先判断参数对象是否为null,如果比较对象为空则返回1,说明当前对象比传入对象大,如果比较对象不为null,则把它强制转换为Person类型,因为传进来的参数是object类型。如果当前对象(Person对象)的Age属性比传入对象的Age属性值大则返回1,说明当前对象比传入对象大;如果返回-1,说明比传入的对象小;如果相等返回0。

 

C#接口

调用接口中的方法

C#接口

 

在以上代码中,首先创建了两个待比较的对象p1和p2,调用CompareTo方法进行比较。因为p1的Age属性是18,p2的Age属性是19,所以P1是比P2小的。

C#接口