У меня создалось впечатление, что в С# элементы структуры выделяются в стеке и, таким образом, исчезают при возврате из метода, в котором они были созданы. Но что произойдет, если я поместим структурные значения в список и верну это? Элементы выживают. Являются ли экземпляры структуры иногда выделенными в куче?
internal struct Stru
{
public int i;
}
internal class StruTry
{
public List<Stru> Get(int max)
{
var l = new List<Stru>();
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);
}