- 泛型:泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念(简单易懂点的就是他有一个任意字符,表示占类型,他不是固定的类型,可以根据个人的需要来改变,从而减少重载,减少装箱拆箱,达到提高性能的功能)。
- 泛型的优点: 减少装箱和拆箱,提高运行效率,类型安全,提高代码的重用
- 一个简单的泛型方法(T 是类型,并且是可变的不固定的)
public static T AreEqual<T>(T value1, T value2)
{
return value1.Equals(value2);
}
- 一个简单的泛型类和泛型方法
泛型方法提供了更加多变的灵活性。泛型方法可以存在于泛型类,也可以在于非泛型类中。你可以将类型参数作为某个方法的参数、返回值、或者局部变量,该类型参数可能并不被整个类所需要,而更明确的用于某个方法。
- 结构 : 必须是值类型,可以指定除 Nullable 以外的任何值类型
定义:在计算机科学中,在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构(structure)。根据数据元素之间关系的不同特性,通常分为4类基本结构:线性结构、树形结构、集合、图状结构或网状结构
- 类:类型参数必须是引用类型,包括任何类、接口、委托或数组类型
- New():类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。
- 常见的泛型集合: List<T> 对应ArrayList集合类
SortedList<TKey, TValue> 对应SortedList集合类
Queue<T> 先进先出的集合类
Stack<T> 后进先出的集合类
Collection<T> 自定义泛型集合的基类
Dictionary<TKey, TValue> 对应于Hashtable集合类