Определить, имеет переменная обнуляемого типа пустое или конкретное значение, можно двумя способами. Во-первых, можно проверить переменную на пустое значение. Так, если переменнаяcountобъявлена так, как показано выше, то в следующей строке определяется, имеет ли эта переменная конкретное значение.
if (count != null) // переменная имеет значение
Если переменнаяcountне является пустой, то она содержит конкретное значение. И во-вторых, можно воспользоваться доступным только для чтения свойствомHasValueтипаNullable
bool HasValue
СвойствоHasValueвозвращает логическое значениеtrue,если экземпляр объекта, для которого оно вызывается, содержит конкретное значение, а иначе оно возвращает логическое значениеfalse.Ниже приведен пример, в котором конкретное значение обнуляемого объектаcountопределяется вторым способом с помощью свойстваHasValue.
if(count.HasValue) // переменная имеет значение
Если обнуляемый объект содержит конкретное значение, то получить это значение можно с помощью доступного только для чтения свойстваValueтипаNullable
Т Value
СвойствоValueвозвращает экземпляр обнуляемого объекта, для которого оно вызывается. Если же попытаться получить с помощью этого свойства значение пустой переменной, то в итоге будет сгенерировано исключениеSystem. InvalidOperationException.Кроме того, значение экземпляра обнуляемого объекта можно получить путем приведения к его базовому типу.
В следующей программе демонстрируется основной механизм обращения с обнуляемым типом.
// Продемонстрировать применение обнуляемого типа.
using System;
class NullableDemo { static void Main { int? count = null;
if (count.HasValue)
Console.WriteLine("Переменная count имеет следующее значение: " + count.Value);
else
Console.WriteLine("У переменной count отсутствует значение");
count = 100; if(count.HasValue)
Console.WriteLine("Переменная count имеет следующее значение: " + count. Va^lue) ;
else
Console.WriteLine("У переменной count отсутствует значение");
}
}
Вот к какому результату приводит выполнение этой программы.
У переменной count отсутствует значение Переменная count имеет следующее значение: 100
Применение обнуляемых объектов в выражениях