C#中的泛型简介与理解

时间:2021-12-23 08:32:08

C#中的泛型,从字面意思可猜想,也就是泛指的类型,即类型不确定。用于编程中,也就是说可以对不同的类型进行抽象。概念其实很简单,对于我们这些新手来说,主要问题

可能就是对泛型的作用,用法和语法的规则,简写等等的掌握。

首先,对泛型的整体进行介绍。在学习和掌握泛型之前,我们需要谨记一个概念,C#语言是面向对象的,泛型是类。

泛型跟类一样,包括泛型类,泛型方法,泛型接口,泛型结构。

一、泛型的定义

1、泛型类

1 class MyGeneric<T> 2 { 3 //............. 4 }

2、泛型方法

1 public void MyMethod<T>() 2 { 3 //..... 4 }

3、泛型接口

1 interface MyInterface<T> 2 { 3 //...... 4 }

4、泛型结构

1 struct MyStruct<T> 2 { 3 //..... 4 }

通过对上面的泛型类泛型方法泛型接口泛型结构的声明语法的观察,我们可以轻松的发现,相对于C#中的类的声明等语法,其实泛型只是多加了一个类型参数用来表示不

同类型而已。添加的方式也就是在类、方法等名称后面加"<T>"。另外,,我们也知道,类、方法、接口和接口的声明中可以包含多种不同的类型,那么同样的道理泛型类、泛型方

法、泛型接口和泛型结构中当然也就可以包含多个类型不确定的泛型参数,使用多个泛型参数的时候需要在<>中添加不同的泛型参数。

二、泛型的使用

对于泛型的使用,总结成一句话就是,跟普通类的使用是几乎一样的,只是在使用过的时候需要将类型参数确定为明确的类型。

三、泛型的注意事项

1、有的时候在定义泛型的时候,我们需要确定泛型的类型参数必须要满足某个条件,那么我们可以使用where关键字来实现,目的是让类型参数必须要实现某个类型接口,要是

需要保证类型参数可以实例化的话,那么就需要在where的约束的最后,添加new()约束即可。

2、需要注意泛型之间的相互转换问题。