鼎鼎知识库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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