一、泛型的概念,定义,运行原理,优势
1.泛型的概念
泛型(generic)是C# 2.0推出的新语法,并不是语法糖,它是专门为处理多段代码在不同的数据类型上执行相同的指令的情况而设计的。
即泛型让不同的数据类型支持相同的业务逻辑。
泛型是一个复合类型,把多个类型混合一起作用,比如:方法和泛型混到一起,叫泛型方法,类和泛型混在一起叫泛型类,接口和泛型混到一起,叫泛型接口,等等。
2.泛型该如何定义
泛型定义语法格式:<T>或<T,K,......> 其中T,K指未知类型。
语句:Class Show<T>
使用:Show<类型> show=new Show<类型>();
泛型定义时,是延迟声明的:即定义的时候没有指定具体的参数类型,把参数类型的声明推迟到了调用的时候才指定参数类型。
3.泛型的运行原理
程序最终会编译成XXX.exe,XXX.exe被点击的时候,会经过JIT的编译,生成二进制代码,才被计算机执行。使用泛型以后,VS自带的编译器又做了升级,升级之后编译时遇到泛型,会做特殊的处理:先生成占位符。再次经过JIT编译的时候,会把上面编译生成的占位符替换成具体的数据类型。(两次编译)
注解:JIT:Just In Time称为即时编译器
4.泛型的优势
1.最大限度地重用代码(支持多种数据类型)。
2.保护类型的安全以及提高性能(和object相比,object会使用到装箱操作)。
3.语法优美
二、泛型的应用范围
泛型方法,泛型接口,泛型类,泛型委托,泛型结构
但在C#中应用比较广的泛型:泛型方法,泛型类,泛型接口
泛型可以提供多种数据类型的占位符
internal class Program
{
static void Main(string[] args)
{
//这里把T变为int,K变为float,
Stort<int,float> stack