C#学习笔记10

                                                                    10.接口和泛型

1.接口:接口是包含了一组 类或者结构可以实现的 功能的定义
1.1只包含方法的定义不包含实现
1.2不能使用任何修饰符
1.3接口一旦被实现就必须实现接口中定义的所有功能,除非是抽象类
1.4接口只能被实现,不能实例化
1.5接口可以包含事件,索引器,方法和属性,但是不能包含字段
1.6类的继承只能单继承,接口可以多实现
1.7接口关键字:interface 接口的实现写法跟类的继承一样,使用逗号隔开
接口之间的继承:比如接口A继承接口B,某个类实现了接口A的时候就必须对A跟B接口当中定义的所有方法进行实现。
2.接口与抽象类
2.1相同点:1.两者都不能被实例化 2.两者都包含了由其他类或者结构继承或实现的抽象成员
2.2不同点:2.2.1抽象类当中除了有抽象成员外还可以有非抽象成员;而接口中所有的成员都是抽象的
2.2.2抽象成员可以使用修饰符修饰,接口当中接口成员访问级别是默认不可修改的,并且默认是public
2.2.3接口当中不可以包含构造方法,析构方法,静态成员及常量
2.2.4 C#类只支持单继承,接口支持多继承
3.泛型:泛型是一种能够将类型当作参数传递的类型
3.1泛型类型参数的命名:(1)使用描述型的语言来描述的话,需要在前面加T(2)如使用某个大写字母替代,则使用其大写字母
3.2泛型类型的参数的约束:对参数进行约束,可以使我们在应用的时候传入的类型必须符合我们要求的类型吗,进一步提高代码的安全性
3.2.1约束类型:(1)where T:struct 表示泛型T必须是一个值类型(小数,整数,枚举,结构体,字符)(2)where T:class 表示泛型T必须是一种引用类型(3)where T:new()表示泛型T类必须是具有一个无参数的构造函数(4)where T:具体类 表示泛型T必须是该类或者该类的派生类(5)where T:接口名 表示泛型T必须是实现了该接口的类或者结构体
约束可以对一个泛型类型进行多个约束,也可以对多个泛型类型参数进行约束
当一个泛型参数应用多个约束的时候,如果有new(),就必须放在最后;如果有struct/class,则必须放在最前面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值