C#拆箱和装箱 泛型
C#拆箱和装箱 泛型
装箱和拆箱:
- 装箱(boxing)是将值类型(value type)转换为引用类型(reference type)的过程。例如,将一个整数类型的变量装箱为 object 类型。
- 装箱会创建一个新的对象,将值类型的值复制到这个对象中,然后返回对该对象的引用。
- 装箱是一个昂贵的操作,因为它需要分配内存并复制值。在高性能应用程序中,应尽可能避免装箱。
- 拆箱(unboxing)是将引用类型转换为值类型的过程。例如,将一个 object 类型的变量拆箱为整数类型。
- 拆箱会从对象中提取值类型的值,并将其复制到一个新的值类型变量中。
频繁装箱和拆箱会导致性能下降
泛型:
-
泛型(generics)是 C# 中一种强大的类型参数化机制。它允许在编译时确定类型参数,并以类型安全的方式使用这些参数。
(可理解为约束了参数类型)
-
使用泛型可以减少代码重复,提高代码可读性和可维护性。
-
泛型类、泛型接口和泛型方法都是泛型的基本概念。
-
泛型类(generic class)是一种定义了一个或多个类型参数的类。这些类型参数可以在类的成员中使用。
-
泛型接口(generic interface)是一种定义了一个或多个类型参数的接口。这些类型参数可以在接口的成员中使用。
-
泛型方法(generic method)是一种定义了一个或多个类型参数的方法。这些类型参数可以在方法的参数、返回值和局部变量中使用。
-
使用泛型时,可以通过在类型参数前加上 where 子句来对类型参数进行限制,以确保泛型类型满足一定的要求。例如:where T : class 表示 T 必须是引用类型。
本文来自博客园,作者:Wo_OD,转载请注明原文链接:https://www.cnblogs.com/WoOD-outPut/p/17202081.html