содержит сами значения int.

1.0 способ создания коллекции целых чисел (например) был:

ArrayList list = new ArrayList();
list.Add(i);          /* boxing   */
int j = (int)list[0]; /* unboxing */

Наказанием за использование этого является отсутствие безопасности типов и производительности из-за упаковки и распаковки.

Путь .NET 2.0 заключается в использовании обобщений:

List<int> list = new List<int>();
list.Add(i);
int j = list[0];

Цена бокса (насколько я понимаю) - это необходимость создать объект в куче, скопировать целое число в стеке для нового объекта и наоборот для распаковки.

Как использование дженериков преодолевает это? Означает ли выделенное стеком целое число в стеке и на которое указывает куча (я полагаю, это не так из-за того, что произойдет, когда оно выйдет из области видимости)? Кажется, все еще есть необходимость скопировать его из стека в другое место.

Что на самом деле происходит?

Ответы на вопрос(6)

Ваш ответ на вопрос