小静,我们该如何通过C语言深入理解CLR?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1404个文字,预计阅读时间需要6分钟。
泛型就像是一个模板,通常定义一些通用的算法,使用时再替换成具体的数据类型,提高了代码的复用性。例如,FCL中的泛型List,可以定义一个静态变量vo:
javastatic vo
泛型就像是一个模板,常常定义一些通用的算法,具体调用时再替换成实际的数据类型,提高了代码的可重用性。
一、初识泛型 1. 简单实例
以最常用的FCL中的泛型List<T >为例:
static void Main(string[] args)
{
List<int> num = new List<int>();
num.Add(1);
num.Add(3);
int num1 = num[0];
int num2 = num[1];
}
尖括号中的T是不确定的数据类型,叫做类型参数,一般规定以字母T开头,可以是TKey, TValue都可以。而调用时指定的具体类型叫做类型实参。
查看一下IL代码:
- 类型名List是以“`”加数字结尾的。数字表示类型的元数,也就是需要指定具体类型的参数个数。
- 泛型是类型安全的。如果用“num.Add("a");”会发生编译错误;
- 泛型可以提高算法的可重用性,而且从例子中看出int类型并没有进行装箱拆箱操作,相比将所有类型转换为Object的方式而言,提高了程序的性能。
- 为泛型变量设置默认值时常使用default关键字进行,T temp=default(T)。
本文共计1404个文字,预计阅读时间需要6分钟。
泛型就像是一个模板,通常定义一些通用的算法,使用时再替换成具体的数据类型,提高了代码的复用性。例如,FCL中的泛型List,可以定义一个静态变量vo:
javastatic vo
泛型就像是一个模板,常常定义一些通用的算法,具体调用时再替换成实际的数据类型,提高了代码的可重用性。
一、初识泛型 1. 简单实例
以最常用的FCL中的泛型List<T >为例:
static void Main(string[] args)
{
List<int> num = new List<int>();
num.Add(1);
num.Add(3);
int num1 = num[0];
int num2 = num[1];
}
尖括号中的T是不确定的数据类型,叫做类型参数,一般规定以字母T开头,可以是TKey, TValue都可以。而调用时指定的具体类型叫做类型实参。
查看一下IL代码:
- 类型名List是以“`”加数字结尾的。数字表示类型的元数,也就是需要指定具体类型的参数个数。
- 泛型是类型安全的。如果用“num.Add("a");”会发生编译错误;
- 泛型可以提高算法的可重用性,而且从例子中看出int类型并没有进行装箱拆箱操作,相比将所有类型转换为Object的方式而言,提高了程序的性能。
- 为泛型变量设置默认值时常使用default关键字进行,T temp=default(T)。

