33 подписчика
Значимые и ссылочные типы данных
Все переменные заносятся в стек. Но где хранится их значение зависит от типа данных.
Любая переменная относится к одному из типов данных.
1. Значимый тип данных. Значение переменной данного типа хранится прямо на стеке.
2. Ссылочный тип данных. Значение переменной хранится в куче (другая область памяти). А на стеке хранится ссылка на эту область памяти.
Так вот, когда мы присваиваем одной переменной другую переменную, то копируется то значение, которое хранится в стеке. То есть, для значимых типов копируется значение, а для ссылочных типов копируется ссылка (две переменные будут указывать на одну и ту же область в памяти).
Кроме этого:
1. Копирование также происходит при передаче параметров в функцию/метод.
2. При сравнении переменных на равенство (==) сравниваются значения, которые указаны в стеке
Как вам такой тип контента? Сначала тест, потом объяснения, а потом снова тест для закрепления материала (да, скоро будет еще тест)?
PS. Данная и другие темы будут более подробно разжеваны и показаны в курсе "C# Курс для продвинутых". Вы можете начало курса попробовать пройти бесплатно. Ну например данная тема подробнее рассказывается здесь. Попробуйте😉
Около минуты
15 декабря 2023