Разбираемся с Nullable

Приветствую всех. Сегодня поговорим об обобщенной структуре Nullable<T> которая является дженерик классом. Бывают случаи при работе с базами данных или во время парсинга, необходимо возвращать значению null, но в сишарпе значения null могут возвращать только ссылочные типы. Вот для таких случаев и используют структура Nullable<T>.   Т в данном случаи означает универсальный параметр, который будет автоматически подставлен компилятором.

Тип Nullable<T> представляет типы значений с пустыми (нулевыми) значениями.

При сравнении операндов один из которых null — результатом сравнения всегда будет — false

Рассмотрим простейший пример:

В данном примере использован оператор ? после типа, перед объявлением переменной, говорит компилятору что мы создали ссылку на класс Nullable<T>. И в данном случаи он воспринимает это как:

Своего рода он создает обертку, в ссылочный тип, и теперь мы можем манипулировать этим значением как ссылкой.

Все типы Nullable<T> имеют лишь два свойства Value, которое имеет значение объекта, и HasValue, которое возвращает true, если объект Nullable хранит  значение. Однако стоит запомнить что свойство Value хранит значение которое было типизировано Nullable.

Преобразование типов в Nullable<T>, происходит таким же способом как и при значениях, обычным кастом.

Операция поглощения:

Оператор ?? возвращает левый операнд, если он не null и правый операнд, если левый null

 

 

 

 

Обновлено: 18.02.2018 — 12:39

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.