【发布时间】:2015-09-19 14:05:04
【问题描述】:
我有一个string 数组,用下面的文字字符串初始化:
public static void Main()
{
string[] values = new string[] { "Cat", "Dog", "Mouse", "Rat" };
}
所以我们在堆栈和堆上有以下结构:
OnStack:一个变量values持有对堆上字符串数组的引用。
OnHeap:栈上values引用的字符串数组
但是堆上数组的每个元素的内容是什么?
- 实际的字符串文字?
- 指向实习池中字符串文字的引用?
编辑:该问题被指出为与this question 重复。但我的情况不同
- 另一个问题是关于值类型作为数组元素如何表现的上下文,这表明问题提出者不清楚如何在堆栈/堆上分配 ref/val 类型对象。
- 在我的问题中,我很清楚如何在堆栈或堆上分配 ref/val 类型的元素,但我正在讨论对象是字符串文字时的特殊情况。因为那必须处理实习生池和 GC。
【问题讨论】:
标签: c# arrays .net string heap-memory