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