Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Работа с типами, для которых допустимы значения null

Работа с типами, для которых допустимы значения null

Типы с разрешением принимать значение null могут оказаться исключительно полезными при взаимодействии с базами данных, где столбцы в таблице могут оказаться пустыми (т.е., неопределенными). Для примера рассмотрим следующий класс, моделирующий доступ к базе данных с таблицей, два столбца которой могут оставаться неопределенными. Обратите внимание на то, что здесь метод GetIntFromDatabase() не присваивает значение члену-переменной целочисленного типа с разрешенным значением null, в то время как GetBoolFromDatabase() назначает подходящее значение члену bool?.

Class DatabaseReader {
 // Поле данных с разрешением значения null.
 public int? numbericValue;
 public bool? boolValue = true;
 // Обратите внимание на разрешение null для возвращаемого типа.
 public int? GetIntFromDatabase() {return numberiсVаlue;}
 // Обратите внимание на разрешение null для возвращаемого типа.
 public bool? GetBoolFromDatabase() {return boolValue;}
}

Теперь рассмотрим следующий метод Main(), вызывающий члены класса DatabaseReader и демонстрирующий присвоенные им значения с помощью HasValue и Value в соответствии с синтаксисом C#.

static void Main(string[] args) {
 Console.WriteLine("***** Забавы с разрешением null *****n")
 DatabaseReader dr = new DatabaseReader();
 // Получение int из 'базы данных'.
 int? i = dr.GetIntFromDatabase();
 if (i.HasValue) Console.WriteLine("Значение 'i' равно: {0}", i);
 else Console.WriteLine("Значение 'i' не определено.");
 // Получение bool из 'базы данных'.
 bool? b = dr.GetBoolFromDatabase();
 if (b != null) Console.WriteLine("Значение 'b' равно: {0}", b);
 else Console.WriteLine("Значение 'b' не определено.");
 Console.ReadLine();
}

Оглавление книги


Генерация: 2.994. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз