Fady Hany Asked: 2025-04-29 11:01:13 +0800 CST2025-04-29 11:01:13 +0800 CST 2025-04-29 11:01:13 +0800 CST VB.NET 中数组的分配[重复] 772 我对 C# 了解不多,据我所知,C# 和 VB 之间的区别几乎仅在于语法,我的问题是我看到了这个 问题并且看到了答案(只有一个答案),说实话我不明白问题和答案之间有什么关系:) 所以(据我所知)在 C# 中数组元素是在堆中(数组内部)分配的。 书中的段落有误吗?或者我遗漏了什么? .net 1 个回答 Voted Best Answer Marc Gravell 2025-04-29T14:28:42+08:002025-04-29T14:28:42+08:00 的整数元素是myIntarray值类型,分配在堆栈上 最后四个字是胡言乱语。元素位于数组中,而数组位于堆上,所以:它们位于堆上。数组元素可以完全在该位置进行交互;例如,调用类似 的方法通常myComplexValueTyprArray[4].Whatever() 不会(至少在 C# 中)在任何时候将值复制到堆栈上。手动将值复制到数组中或从数组中复制出来可能会涉及堆栈,但那是另一回事。其余大部分看起来都正确。
最后四个字是胡言乱语。元素位于数组中,而数组位于堆上,所以:它们位于堆上。数组元素可以完全在该位置进行交互;例如,调用类似 的方法通常
myComplexValueTyprArray[4].Whatever()
不会(至少在 C# 中)在任何时候将值复制到堆栈上。手动将值复制到数组中或从数组中复制出来可能会涉及堆栈,但那是另一回事。其余大部分看起来都正确。