Я имею string
массив инициализирован с буквальным строки, как показано ниже:Массив строковых литералов
public static void Main()
{
string[] values = new string[] { "Cat", "Dog", "Mouse", "Rat" };
}
Таким образом, мы имеем следующие структуры на стеке и Heap:
OnStack: Переменная values
холдинг ссылки к массиву строки в куче.
OnHeap: Массив строки, которая ссылается на стек values
Но что будет содержание каждого элемента массива в куче?
- Фактические строковые литералы?
- Ссылки, указывающие на строковые литералы в пуле пользователя?
Edit: вопрос было указано, как продублировать на this question. Но мой случай отличается в терминах,
- Другой вопрос в контексте того, как тип значения в качестве элементов массива ведут себя, что показал, что вопрос проблемка не ясно, каким образом объекты исх/вал типа выделяются на стек/кучу.
- В моем вопросе я понимаю, как элементы типа ref/val выделяются в стеке или куче, но я обсуждаю специальный случай, когда объекты являются строковыми литералами. Потому что это должно иметь дело с международным пулом и GC.
Возможный дубликат [Как массив типов значений, хранящихся в кучи объектов .NET?] (Http: // stackoverflow .com/questions/5087987/how-is-an-array-of-value-types-stored-in-net-object-heap) –