泛型不仅是C#编程语言的一部分,而合且是与程序集中的IL代码紧密地集成。有了泛型,可以创建独立于被包含类型的类和方法。

1.性能

个人理解,在使用泛型的时候,你在规定了数据的类型,那相当在执行方法时,没有去使用装箱与拆箱的动作,这样对于程序的性能有很大的提高

2.命名的约定

泛型的名称用字母T作为前缀

如果没有特殊的要求,泛型类型允许用任意类型替代,且使用了一个泛型类型,就可以用字符T做为泛型类型的名称。

public class List {}

public class LinkedList{}

public class MyList where T:struct
{
public MyList()
{

}
public MyList(T value)
{
this.Value = value;
}
public T Value { get; set; }
}

3.泛型的约束

where T:stuct T必须是值类型

where T:class T必须是引用类型

where T:IFoo T必须实现接口Ifoo

where T:Fo T必须是Fo的子类

where T:new() T必须有一个默认的无参构造函数(有多个约束的时候,new 放在最后)

where T1:T2 类型T1派生自泛型类型T2.该约束也称为裸类型约束