c# - 值类型存储在 (C#) 泛型集合中的什么位置

标签 c# .net types generics

的确,对于值类型,泛型集合比非泛型集合表现得更好。 (即 List 与 ArrayList)。

但为什么会这样,除了装箱-拆箱步骤?一旦添加到集合中,值类型对象存储在哪里?在非泛型集合中,它们会被装箱并存储在堆上,泛型有什么不同?

最佳答案

在泛型中,例如 List<T> ,它们仍然存储在堆中。不同之处在于,在内部,一个 List<int>制作一个整数数组,并可以直接存储数字。使用 ArrayList,您最终会存储一个对装箱整数值的引用数组。

关于c# - 值类型存储在 (C#) 泛型集合中的什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790436/

相关文章:

c# - 无法将通用接口(interface)添加到具有相同约束的列表

c++ - 如何将函数标记为使其参数无效

python 强/弱动态/静态类型语言?

c# - Silverlight/WPF : I Don't Want ICommand to Change Button's IsEnabled Property, 这可能吗?

c# - 我可以在 C# 中为 UdpClient 设置超时吗?

c# - 在 C# 构造函数中处理可选委托(delegate)的最佳方法是什么?

.net - 可为空且类型化的数据集,某处是否有生成器?

c# - MVC4 中的部分模型验证

.net - T4:在 Visual Studio 和 MSBuild 中使用属性

java - 如何将这种鸭子类型(duck typing)(Python)转换为 Java 泛型?