c# - 为什么泛型减少了装箱/拆箱操作

标签 c# .net generics

来自 here

// The .NET Framework 2.0 way to create a list
List<int> list1 = new List<int>();

// No boxing, no casting:
list1.Add(3);    

我知道没有类型转换。但是为什么没有boxing发生了什么?

“3”在栈上,列表在堆上。

为什么不装箱就把栈中的值移到堆中?

引擎盖下发生了什么?

最佳答案

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

关于c# - 为什么泛型减少了装箱/拆箱操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203547/

相关文章:

c# - 将泛型隐式转换为包装器

c# - 在线编辑PDF并保存和形成数据到服务器

c# - 根据从 C# 编写的方式,两个相同的文件具有不同的文件大小

c# - 什么是System.Void?

c# - http工作时如何测试WCF net.tcp?

c# - C# 泛型如何影响具有原语的集合

c# - 在 C# 中读取自定义格式文件

c# - .NET 中对 XML 字符串进行编码以发布到 URL 的正确方法是什么?

c# - 得到 .PNG 文件。希望嵌入的图标资源在表单标题栏上显示为图标

swift - 创建可比较和可哈希键的字典?