Класс System.Nullable
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Класс поддерживает типы значений Nullable , которые могут быть назначены null
.
Тип, как утверждается, имеет значение NULL, если он может быть назначен или может быть назначен null
. Это означает, что тип не имеет никакого значения. По умолчанию все ссылочные типы, например String, имеют значение NULL, но все типы значений, например Int32, не являются.
В C# и Visual Basic тип значения помечается как допускающий значение NULL с помощью ?
нотации после типа значения. Например, int?
в C# или Integer?
в Visual Basic объявляет целочисленный тип значения, который можно назначить null
.
Класс Nullable обеспечивает дополнительную поддержку Nullable<T> структуры. Класс Nullable поддерживает получение базового типа типа, допускающего значение NULL, и операции сравнения и равенства пар типов, допускающих значение NULL, базовый тип которого не поддерживает универсальные операции сравнения и равенства.
Упаковка-преобразование и распаковка-преобразование
Если задан тип, допускающий значение NULL, среда CLR автоматически настраивает базовое значение Nullable<T> объекта, а не Nullable<T> сам объект. То есть, если HasValue свойство имеет true
значение, содержимое Value свойства отображается в поле.
HasValue
Если свойство типа, допускающего значение NULL, является false
null
результатом операции бокса. Если базовое значение типа, допускающего значение NULL, распаковано, среда CLR создает новую Nullable<T> структуру, инициализируемую базовому значению.