Класс 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, является falsenullрезультатом операции бокса. Если базовое значение типа, допускающего значение NULL, распаковано, среда CLR создает новую Nullable<T> структуру, инициализируемую базовому значению.