CLR设计类型之接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLR设计类型之接口相关的知识,希望对你有一定的参考价值。

            写到这一节的时候,CLR设计类型就已经结束了,因为CLR要求的是有一定基础的人看的,所以我们不是从基础类型以及运算符开始的,文章从一开始就讲的是深入面向对象编程,研究C#程序的设计模式。C#面向对象编程有三个特点:封装,继承,多态。接口的实现就是实现继承

           其实在开始之前说一下这两天发生的事情,前几天维护项目代码时,虽然是自己写得但是由于逻辑判断比较多,有些变量名起的也不是很有意义,在看的时候就完全忘记当初为啥要写成这样了,也是有点汗颜,所以最近就把代码整洁之道也放在了看书的目录上,今后的示例代码也会符合代码整洁之道上的一些要求去写。而不是用无意义的a,b,c去做为变量名。那么接口要做的事,也是让代码更加简洁的事情,接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。

        说了这么多,那么我们用接口实现一个计算器的例子,通过这个例子来说明接口到底是如何定义,如何使用的。先看接口的定义:

技术分享
 1   interface ICalculator {
 2         //通常接口命令以 I 字母开头,ICalculator 中文意思就是计算器接口
 3         //这个接口规定了一个计算器要有基本的加减乘除运算方法
 4         //加法
 5         int Add(int x,int y);
 6         //减法
 7         int Reduce(int x, int y);
 8         //乘法
 9         int Ride(int x, int y);
10         //除法
11         int Except(int x, int y);
12     }
View Code

       上面的代码很简单吧,在接口中不能声明静态方法,接口中的方法不能用可见性修饰符修饰,在来看这句话:接口定义了所有类继承接口时应遵循的语法合同,也就是接口先规定好了我要实现那些方法和行为,继承我的要实现(重写)我的所有方法,并且返回值要和我相同,参数也要和我相同。否则就是违反了合同,语法就会报出错误。有了合同,类现在就像是一个建筑包工头,我只需要按照你的约定做,你让我盖十层楼,我就盖十层楼。继承接口类如下:

 

 

           

  

以上是关于CLR设计类型之接口的主要内容,如果未能解决你的问题,请参考以下文章

CLR类型设计之泛型

CLR类型设计之参数传递

CLR类型设计之泛型

CLR类型设计之方法与构造器

C#泛型

1.CLR执行模型