1、泛型
1)性能
泛型的一个主要优点是性能。对值类型使用非泛型集合类,在把值类型转换为引用类型,和把引用类型转换为值类型时,需要进行装箱和拆箱操作。
值类型存储在栈上,引用类型存储在堆上。C#类时引用类型,结构是值类型。从值类型转换为引用类型为装箱。
2) 类型安全
泛型的另一个特性是类型安全。
3) 二进制代码的重用
泛型允许更好地重用二进制代码。
4) 代码的扩展
值类型包含在实例化的泛型类的内存中,同时因为每个值类型对内存的要求都不同,所以要为每个值类型实例化一个新类。
5) 命名约定
泛型的命名规则:
* 泛型类型的名称用字母T作为前缀;
* 如果没有特殊要求,泛型类型允许用任意类替代,且只使用一个泛型类型,就可以用字符T作为泛型类型的名称。
* 如果泛型类型有特定要求(如必须实现一个接口或派生自基类),或者使用两个或多个泛型类型,就应给泛型类型使用描述性的名称。
public delegate void EventHandle<TEventArgs>(object sender,TEventArgs e);
public delegate TOutput Converter<TInput,TOutput>(TInput from);
public class SortedList<TKey,TValue>{}
参考:
C#高级编程