Всегда ли структуры выделяются в стеке или иногда в куче?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Всегда ли структуры выделяются в стеке или иногда в куче?

Сообщение Anonymous »

У меня сложилось впечатление, что в C# элементы структуры размещаются в стеке и, таким образом, исчезают при возврате из метода, в котором они были созданы. Но что произойдет, если я помещу значения структуры в список и верну его? Элементы выживают. Размещаются ли иногда экземпляры структур в куче?

internal struct Stru
{
public int i;
}

internal class StruTry
{
public List Get(int max)
{
var l = new List();
for (int i = 0; i < max; i++)
l.Add(new Stru {i=i});

return l;
}
}


печать кода 0, 1, 2

[Test]
public void T()
{
var ll = new StruTry().Get(3);
foreach (var stru in ll)
Console.WriteLine("* "+ stru.i);
}


Подробнее здесь: https://stackoverflow.com/questions/485 ... -allocated
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Может ли класс C++ определить, находится ли он в стеке или в куче?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • JavaScript (V8) VS C++ (понимание распределения памяти в стеке и куче)
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Arr находится в стеке или куче?
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Arr находится в стеке или куче?
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Переменная Java, размещенная в стеке или куче
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»