@beduin01

Почему класс это ссылочный тип?

В C# класс ссылочный тип. Вопрос как такое может быть?
Мы же когда экземпляр класса создаем, то для него память выделяем новую. Это же не ссылка получается.
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
xkeirainx
@xkeirainx
Фулстэк энтерпрайз разной степени кровавости
Основное отличие между ссылочными и значимыми типами в том, что одни передаются по ссылке, а другие по значению, как бы это банально не звучало. Расположение в куче или на стеке — это всего лишь следствие особенностей работы с объектом, например, времени жизни, стратегией копирования, размером.

Также стоит понимать, что CLR не всегда располагает вещественные объекты на стеке. Вот статья на эту тему от Эрика Липперта.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Читайте "CLR via C#". При создании объекта создается объект в "куче" (heap), а в стеке - ссылка него. Сборщик мусора периодически проверяет кучу на наличие объектов, на которые нет ссылок и убивает их.
Ответ написан
AxisPod
@AxisPod
Видимо потому что вы оперируете не объектами, а ссылками на него. Если в C++ программист явно управляет этим, то здесь на себя это берет CLR и class - ссылочный тип, числовые простые типы, enum, struct - значимые и точка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы