【C#】泛型篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/It_sharp/article/details/82955416

泛型类实例化的理论

C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类,所以不同的封闭类的本地代码时是不一样的。

泛型类的静态成员

泛型类中数据类型的约束

泛型中的静态构造函数

泛型类中的方法重载

泛型类的方法重写

总结

C# 泛型是开发工具库中的一个无价之宝。它们可以提高性能、类型安全和质量,减少重复性的编程任务,简化总体编程模型,而这一切都是通过优雅的、可读性强的语法完成的。尽管 C# 泛型的根基是 C++ 模板,但 C# 通过提供编译时安全和支持将泛型提高到了一个新水平。C# 利用了两阶段编译、元数据以及诸如约束和一般方法之类的创新性的概念。毫无疑问,C# 的将来版本将继续发展泛型,以便添加新的功能,并且将泛型扩展到诸如数据访问或本地化之类的其他 .NET Framework 领域。

常用泛型

泛型类或接口 描述
Collection< T >、ICollection< T > 为泛型容器提供基类
Comparer< T >、IComparer< T >、IComparable< T > 比较两个相同的泛型类型的对象是否相等、可排序
Dictionary<K,V>、IDictionary<K,V> 表示用键/值对集合
Dictionary<K,V>.KeyCollection 表示Dictionary<K,V>中键的集合
Dictionary<K,V>.ValueCollection 表示Dictionary<K,V>中值得集合
IEnumerable< T >、IEnumerator< T > 表示可以使用foreach迭代的集
KeyedCollection<T,U> 表示有键值的集合
LinkedList< T > 表示双向链表
LinkedListNode< T > 表示LinkedList< T >中的节点
List< T >、IList< T > 使用大小可按需动态增加的数组实现IList接口
Queue< T > 表示对象的先进先出集合
ReadOnlyCollection< T > 为泛型只读容器提供基类
SortedDictionary<K,V> 表示键/值对的集合,这些键和值按键排序并可按照键访问,实现IComparer< T >接口
Stack< T > 表示对象的简单的后进先出集合

猜你喜欢

转载自blog.csdn.net/It_sharp/article/details/82955416
今日推荐