爱吃酸菜鱼的猫

C#关于泛型

1、泛型(Generic)是c#2.0和通用语言运行时CLR的一个新特性。泛型为.NET的框架引入类型参数(TYPE parameter ),这使得我们在设计类和方法时,不用确定一个或多个具体的参数,其具体的参数可以延迟到客户的代码中去声明和实现。这避免了运行时类型的转换或装箱拆箱操作的性能损耗。

2、泛型的声明:在方法名后面加上<>就是一个泛型方法。

下面附加一段极其简单的代码,说明一下泛型方法的声明以及调用。

 

 我们在调用泛型方法的时候,需要再调用时在<>里面指明是什么类型。

当然,这种方法在我们方法内部是不安全的,因为我们不知道会传入什么类型,所以,我们可以使用一些约束。

例如:

 

 

 加了约束之后,我们在调用时,就只能按照约束传参了。这样就提高了安全性。

3、下面图片中可以看一下关于泛型类或者泛型接口的声明

 

 4、关于泛型的协变与逆变

协变与逆变只能是在泛型接口或者泛型委托中。

我们先声明两个类,分别是Bird, Sparrow:Bird

 

 在分别定义两个泛型接口分别用in 和out修饰参数接口并实现了他们

 

 接下来就可以看一下关于协变与逆变的代码编写了

如图以及图中代码备注所示:

 

posted on 2020-05-31 14:05  爱吃酸菜鱼的猫  阅读(104)  评论(0编辑  收藏  举报

导航