概念
泛型将类型参数化,达到代码重用的目的
泛型 只有骨骼没有躯体 传入的参数(int、float、bool等)类似躯体 使泛型有生命
同样的框架 适用于不同的参数类型
语法
泛型占位字母 类似变量类型
但该变量类型是空的 不表示任一变量类型
只有传入变量类型 才可以使用
传入哪个类型 该泛型占位字母 就被替换为传入的变量类型
class 类名<泛型占位字母>
interface 接口名<泛型占位字母>
函数名<泛型占位字母>(参数列表)
泛型占位字母可以有多个,用逗号分开
例子
class Program
{
static void Main(string[] args)
{
Test<int> test = new Test<int>();//传入整型 T 替换为 int
default(T);
Test<string> test1 = new Test<string>();//传入字符串 T 替换为 string
test1.t = "123";
}
}
class Test<T>
{
public T t=default(T); //使用参数类型的默认值 整型默认值为0 bool默认值为false
}
作用
不同的参数类型 可以使用同一套代码 复用代码
避免拆箱和装箱