// Продемонстрировать применение обнуляемого типа.

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

Применение обнуляемых объектов в выражениях

Обнуляемый объект может использоваться в тех выражениях, которые являются действительными для его базового типа. Более того, обнуляемые объекты могут сочетаться с необнуляемыми объектами в одном выражении. И это вполне допустимо благодаря предопределенному преобразованию базового типа в обнуляемый. Когда обнуляемые и необнуляемые типы сочетаются в одной операции, ее результатом становится значение обнуляемого типа.

В приведенной ниже программе демонстрируется применение обнуляемых типов в выражениях.

// Использовать обнуляемые объекты в выражениях.

using System;

class NullableDemo { static void Main() {

int? count = null; int? result = null;

int incr = 10; // переменная incr не является обнуляемой

// переменная result содержит пустое значение,

// переменная оказывается count пустой, result = count + incr; if(result.HasValue)

Console.WriteLine("Переменная result имеет следующее значение: " + result.Value);

else

Console.WriteLine("У переменной result отсутствует значение");

// Теперь переменная count получает свое‘значение, и поэтому

// переменная result будет содержать конкретное значение.

count = 100;

result = count + incr;

if(result.HasValue)

Console.WriteLine("Переменная result имеет следующее значение: " + result.Value);

else

Console.WriteLine("У переменной result отсутствует значение");

}

}

При выполнении этой программы получается следующий результат.

У переменной result отсутствует значение Переменная result имеет следующее значение: 110

Оператор ??

Перейти на страницу:

Похожие книги