Imagine Ich habe eine Methode bekam die Liste der Werttypen gibt:C# Speicherverwaltung Werttyp innerhalb Liste
static List<SomeValueType> AllocateList()
{
List<SomeValueType> lst = new List<SomeValueType>();
for (int i = 0; i < 1000000; i++)
{
lst.Add(new SomeValueType("....", "..."));
}
return lst;
}
ich einige Missverständnisse haben. Sobald wir diese Methode aufgerufen haben, wird ref zur Liste der Werttypen zurückgegeben, und der Stack-Frame wird zerstört. Aber was ist mit SomeValueType
Artikel. Wird es in den Stack-Frame der Aufrufer-Methode kopiert oder in eine Box oder in eine andere Form?
Wenn Listenelemente in den Heap kopiert werden, was ist der Unterschied zwischen Boxen und Werttypen kopieren, um Speicher aufzulisten?
Auf diese Weise, was ist der Unterschied zwischen Boxen und Kopieren zu einem Listenspeicher? – xalz
@xalz Das Kopieren erfordert kein zusätzliches Objekt, das auf dem Heap zugeordnet werden soll, um den Werttyp zu kapseln, es wird wie im Heap kopiert. –