Коли я оголошую int
як мінливий
int? i=null;
Чи i
стає тут еталонним типом?
Коли я оголошую int
як мінливий
int? i=null;
Чи i
стає тут еталонним типом?
Відповіді:
Ні, нульовим є структура. Що відбувається, це те, що нульова структура має два значення:
int
для int?
, DateTime
для DateTime?
тощо).HasValue
є власністю.)Коли ви встановлюєте значення типу даних, структура змінюється HasValue
на true.
Із змінних типів (Посібник з програмування C #) :
Зменшувані типи є екземплярами структури System.Nullable.
і
Зменшувані типи представляють змінні типу значення, яким можна присвоїти значення null. Не можна створити нульовий тип на основі еталонного типу. (Довідкові типи вже підтримують нульове значення.)
Отже, ні, вони не є референтними типами.
Зменшувані типи не є ні типовими, ні типовими типами. Вони більше схожі на типи значень, але мають кілька властивостей референтних типів.
Природно, для нульових типів може бути встановлено значення null
. Крім того, мінливий тип не може задовольнити загальне struct
обмеження. Крім того, коли ви позначаєте нульовий тип з HasValue
рівним false
, ви отримуєте null
вказівник замість коробкового зведеного типу (подібна ситуація існує і при розпакуванні).
Ці властивості роблять нульові типи нецінні типи, але вони впевнені, що вони також не є еталонними типами. Вони є власним спеціальним типом нульових значень.
Ні, тип Nullable - це насправді структура. Виконання буде інтелектуально обробляти налаштування нульового значення для вас, надаючи зовнішній вигляд еталонного типу, коли його немає ....
Зменшувані типи не можуть бути еталонними типами.