从零开始自学C#基础的第三十六天——泛型

从零开始自学C#基础的第三十六天——泛型

编码文章call10242024-12-23 8:58:1730A+A-

一,开始学习

泛型:

  • 泛型是可适应对多种数据类型执行相同功能的单个编程元素,定义泛型类或方法时,无须为可能需要对其执行该功能的每个数据类型定义单独版本。
  • 定义泛型类型时,即使用一个或多个数据类型将其参数化,这样可允许使用代码定制数据类型以满足其要求,代码可以通过泛型元素声明若干个不同的编程元素,每个元素可使用一组不同的数据类型,但是,无论声明的元素使用哪些数据类型,它们执行相同的逻辑。

创建泛型类的过程为:从一个现有的具体类开始,逐一将每个类型更改为类型参数,直至达到通用化和可用性的最佳平衡。

  • .NET Framework类库在System.Collections.Generic命名空间中包含几个泛型集合类。

创建泛型类时,需要注意以下事项:

  • 将哪些类型通用化为类型参数,一般规则是,能够参数化的类型越多,代码就会变得越灵活,重用性越好;
  • 是否将泛型行为分解为基类和子类,由于泛型类可以作为基类使用,此处适用的设计注意事项与非泛型类相同;
  • 是否实现一个或多个泛型接口。
  • Collections.Generic命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能够提供比非泛型强类型集合更好的类型安全性和性能。

代码都声明T类型来代表各种数据类型,无论实例化过程中具体数据类型是什么,都使用T来代替。

还解决了不同类型的数据冲突问题,实现了如下功能:

无须进行类型转换;

不要求装箱和拆箱;

代码的类型安全,无需在类中控制类型转换,或者为不同的类型编写不同的类;

没有多余代码。

在Stack<>中的“T”是类的类型参数,用于参数的多态处理。

二,小结

1,泛型是可适应对多种数据类型执行相同功能的单个编程元素,定义泛型类或方法时,无须为可能需要对其执行该功能的每个数据类型定义单独版本。

2,Collections.Generic命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能够提供比非泛型强类型集合更好的类型安全性和性能。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4