csharp类定义和转换(CSharpnet泛型的使用与介绍)

泛型介绍总结

泛型类和泛型方法通过将参数类型指定特定的占位符T,在实例化的时候根据实际情况替换参数类型.

泛型优缺

使用泛型类型可以最大限度地重用代码、保护类型安全性以及提高性能。

泛型最常见的用途是创建集合类。

.NET Framework 类库在 System.Collections.Generic 命名空间中包含几个新的泛型集合类。 应尽可能使用这些类来代替某些类,如 System.Collections 命名空间中的 ArrayList。

可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。

可以对泛型类进行约束以访问特定数据类型的方法。

在泛型数据类型中所用类型的信息可在运行时通过使用反射来获取。

泛型的使用

GenericList<T>为一个泛型类。可以实例化多个泛型实例:如

GenricList<int> list=new GenericList<int>();

GenericList<string> list=new GenericList<string>();

csharp类定义和转换(CSharpnet泛型的使用与介绍)(1)

举例说明:

csharp类定义和转换(CSharpnet泛型的使用与介绍)(2)

上述约束使用在泛型类的定义的时候可以使用Employee类的属性。、

此外可以泛型类、泛型方法可能不知一个泛型参数,如void ConsoleWrite(T t,U u)因此可能对多个泛型参数进行约束:

csharp类定义和转换(CSharpnet泛型的使用与介绍)(3)

泛型数组

csharp类定义和转换(CSharpnet泛型的使用与介绍)(4)

泛型的default关键字

泛型类与泛型方法中的参数类型T可能为值类型,可以可能是引用类型

T 为引用类型时,语句 t = null 才有效;

T 为数值类型而不是结构时,语句 t = 0 才能正常使用。

为了克服泛型中这个 问题,使用 default 关键字,此关键字对于引用类型会返回 null,对于数值类型会返回零。 对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型。

csharp类定义和转换(CSharpnet泛型的使用与介绍)(5)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页