Карточка Junior Типы значений и ссылочные спрашивают часто обновлено
Типы значений и ссылочные типы: главное
Вопрос
Чем тип значения отличается от ссылочного типа?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
- Переменная типа значения (int, struct, enum) содержит сами данные, присваивание копирует их. - Переменная ссылочного типа (class, string, массив, делегат) содержит ссылку, присваивание копирует ссылку. - Типы значений не бывают null (кроме Nullable<T), наследоваться от них нельзя. - Где хранятся: тип значения там,…
Ответ
- Переменная типа значения (
int,struct,enum) содержит сами данные, присваивание копирует их. - Переменная ссылочного типа (
class,string, массив, делегат) содержит ссылку, присваивание копирует ссылку. - Типы значений не бывают null (кроме
Nullable<T>), наследоваться от них нельзя. - Где хранятся: тип значения там, где переменная (локальная обычно на стеке, поле внутри объекта в куче), объекты классов в куче.
Разбор
На собесе важно не сводить ответ к «стек против кучи»: главное отличие в семантике копирования.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Присваивание структуры копирует данные
Следующий вопрос
Где хранится поле-структура внутри класса
Термины по теме
Ещё по теме «Типы значений и ссылочные»
- Что такое boxing и unboxing
- Сравнение двух упакованных чисел через ==
- Когда происходит упаковка
- Переприсваивание параметра-класса
- default и конструктор структуры без параметров
- Число различных точек
- Сумма int с переполнением, как в unchecked
- Среднее с пропусками (int?)