Подумайте об этом так, местоположение объекта в памяти определяется тем, какой это тип и где он был объявлен.Если объект является типом значения, его значение сохраняется там, где вы объявили переменную.Если объект является ссылочным типом, его ссылка сохраняется там, где вы объявили переменную, в то время как фактический экземпляр объекта существует в куче.
Когда вы объявляете локальную переменную, вы объявляетепеременная в стеке.Поэтому значение типа значения будет в стеке.Ссылка на ссылочный тип будет в стеке, а экземпляр объекта все еще находится в куче.
Если вы объявляете переменную экземпляра в классе (ссылочный тип), вы фактически объявляете переменные экземпляра вкуча.Значение типа значения будет в куче (в экземпляре объекта).Ссылка на ссылочный тип также будет в куче (в экземпляре объекта), экземпляр объекта будет в другом месте в куче.
Если вы объявляете переменную экземпляра в структуре (тип значения), где онаresides зависит от того, где была объявлена базовая структура.
В случае массива типа int int[]
массивы являются ссылочными типами, и вы можете думать о значениях int
, объявленных как "поля" для этого типа.так что ваши целые числа находятся в куче.