Поделиться через


Создание типа, допускающего значение NULL, в Конструкторе классов

Некоторые типы значений не всегда имеют (или им требуется) определенное значение. Это распространенная практика в базах данных, где некоторые поля могут не назначаться ни одного значения. Например, можно назначить значение NULL полю базы данных для обозначения того, что оно еще не назначено.

Тип, допускающий значение NULL, — это тип значения, расширяемый таким образом, чтобы он принимает типичный диапазон значений для этого типа, а также значение NULL. Например, значение Int32, которое также обозначается как Nullable<Int32>, может принимать любое значение от -2147483648 до 2147483647 или может принимать значение null. Nullable<логическое значение> может принимать значения True, False или null (без значения вообще).

Типы, допускающие значение NULL, являются экземплярами Nullable<T> структуры. Каждый экземпляр nullable-типa имеет два общедоступных свойства только для чтения: HasValue и Value.

  • HasValue имеет тип bool и указывает, содержит ли переменная определенное значение. True означает, что переменная содержит ненулевое значение. Вы можете проверить определенное значение с помощью инструкции, например if (x.HasValue) или if (y != null).

  • Value имеет тот же тип, что и базовый тип. Если HasValue имеет значение True, Value содержит понятное значение. Если HasValue это False, то доступ к Value вызовет исключение недопустимой операции.

По умолчанию, при объявлении переменной как nullable типа, она не имеет определенного значения (HasValue является False), за исключением значения по умолчанию её базового типа значения.

Конструктор классов отображает тип, допускающий значение NULL, так же, как он отображает его базовый тип.

Дополнительные сведения о типах, допускающих значение NULL в C#, см. в разделе "Типы, допускающие значение NULL". Дополнительные сведения о типах, допускающих значение NULL в Visual Basic, см. в разделе "Типы значений, допускающих значение NULL".

Замечание

Инструкции в этой статье иллюстрируют последнюю версию интерактивного интерфейса разработки (IDE), доступную в Visual Studio. На компьютере могут отображаться различные имена или расположения для некоторых элементов пользовательского интерфейса. Вы можете использовать другую версию Visual Studio или разные параметры среды. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки.

Добавление допускающего NULL типа с использованием средства Class Designer

  1. На схеме классов разверните существующий класс или создайте новый класс.

  2. Чтобы добавить класс в проект, в меню "Схема классов " нажмите кнопку "Добавить>класс".

  3. Чтобы развернуть фигуру класса, в меню "Схема классов " нажмите кнопку "Развернуть".

  4. Выберите форму класса. В меню "Схема классов" нажмите кнопку "Добавить>поле". Новое поле с полем по умолчанию будет отображаться в фигуре класса, а также в окне сведений о классе.

  5. В столбце "Имя " окна сведений о классе (или в самой фигуре класса) измените имя нового поля на допустимое и понятное имя.

  6. В столбце "Тип " в окне "Сведения о классе " объявите тип, допускающий значение NULL, указав следующее:

    • int? (Visual C#)
    • Nullable(Of Integer) (Visual Basic)

Использование редактора кода для добавления допускающего значение NULL типа

  1. Добавьте в проект класс. Выберите узел проекта в обозревателе решений и в меню "Проект " нажмите кнопку "Добавить класс".

  2. В файле .cs или .vb для нового класса добавьте один или несколько типов, допускающих значение NULL, в объявление класса.

    // Declare a nullable type in Visual C#:
    class Test
    {
       int? building_number = 5;
    }
    
  3. В представлении классов перетащите значок нового класса в область конструктора классов. Фигура класса отображается на схеме классов.

  4. Раскройте детали формата класса и переместите указатель мыши над членами класса. Подсказка отображает объявление каждого члена.

  5. Щелкните правой кнопкой мыши фигуру класса и щелкните "Сведения о классе". Свойства нового типа можно просмотреть или изменить в окне сведений о классе .