为什么泛型可以减少装箱/拆箱操作

本文关键字:操作 泛型 为什么 | 更新日期: 2023-09-27 18:34:00

从这里开始

// The .NET Framework 2.0 way to create a list
List<int> list1 = new List<int>();
// No boxing, no casting:
list1.Add(3);    

我知道没有选角。但是为什么没有拳击发生呢?

"3"在堆栈上,列表在堆中。

堆栈中的值如何在没有装箱的情况下移动到堆中?

引擎盖下会发生什么?

为什么泛型可以减少装箱/拆箱操作

拳击在这里没有发生,因为支持列表的数组是 T[] ,而不是 object[] 。因此,运行时知道您的项是整数,并且不需要对它们进行装箱。

List 在堆上已经有一个预分配的整数数组,因此它只需要将其中一个整数更改为 3。