标签:大量 jit 并且 返回 替换 转移 安全 泛型方法 返回值
泛型简介:
C#2.0泛型机制的引入,实现了类型和方法的参数化,即类型成为参数实现逻辑复用,将大量的类型安全检查从运行时转移到了编译时,提高了代码运行速度。
泛型的优点:
1)类型安全
当我们使用泛型类型或者泛型方法来操作一个具体的数据类型时,编译器会保证这些泛型类型或者泛型方法只适用于与该数据类型兼容的对象,否则,编译器将会报错。
2)提升性能
如果没有泛型机制,我们则需要使用object类型来作为参数或者返回值类型,这样则需要进行强制的类型转换;当我们操作的对象是值类型时,又将会需要装箱与拆箱的操作。引入泛型机制之后,我们通过创建泛型类型或者泛型方法来操作类型,则无需进行强制类型转换,运行时便无需进行类型安全检查,操作值类型时也无需进行装箱、拆箱,提升了代码性能
C#语言提供的泛型机制主要分为两种形式:
泛型类型(包括:泛型类、泛型接口、泛型委托以及泛型结构)以及泛型方法。
泛型类型的内部实现机制:
当泛型类型的类型参数被指定之后,
1)在对于使用了泛型类型参数的代码进行JIT编译时,运行时首先会获取其对应的CIL代码;
2)使用指定的类型实参进行替换;
3)最后将替换后的CIL代码编译为原生代码
泛型接口可防止在使用非泛型接口操作值类型时可能引起的装箱操作,并且提供编译时的类型安全。
标签:大量 jit 并且 返回 替换 转移 安全 泛型方法 返回值
原文地址:https://www.cnblogs.com/sylvan/p/8971768.html