> 泛型概述 - 泛型不仅是C#编程语言的一部分,而且与程序集中的IL代码紧密地集成。有了泛型,就可以创建独立于被包含类型的类和方法。 **泛型的优点** - 性能 - 类型安全性 - 二进制代码重用 - 代码的扩展 - 命名约定 **性能** - 对值类型使用非泛型集合类,在把值类型转换为引用类型,和把引用类型转换为值类型时,需要进行装箱和拆箱操作。 - 值类型存储在栈上,引用类型存储在堆上。C#类时引用类型,结构是值类型。.NET很容易把值类型转换为引用类型,所以可以在需要对象(对象是引用类型)的任意地方使用值类型。 - 从值类型转换为引用类型称为装箱。 **命名约定** - 泛型类型的命名规则 - 泛型类型的名称用字母T作为前缀 - 如果没有特殊要求,泛型类型允许用任意类替代,且只使用一个泛型类型,就可以用字符T作为泛型类型的名称。 ``` public class List{} public class LinkedList{} ``` - 如果泛型类型有特定的要求,或者使用了两个或多个泛型类型,就应给泛型类型使用描述性的名称: ``` public delegate void EventHandle(object sender,TEventArgs e); public delegate TOutput Converter(TInput from); public class SortedList{} ```