Yurijnd.com
Четверг, 06.02.2025, 21:16
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Типы, допускающие значения NULL (Руководство по программированию на C#)

    Visual Studio 2013
     

    Тип, допускающие значения NULL, являются экземплярами структуры Nullable. Тип, допускающий значения NULL, может представлять правильный диапазон значений для своего базового типа значений и дополнительное пустое значение null.Например, для Nullable<Int32>, называемого "тип Int32, допускающий значения NULL", можно назначить любое значение от -2 147 483 648 до 2 147 483 647 или значение null. Для Nullable<bool> можно назначить значения truefalse или null. Возможность назначения значения null для числовых и логических типов особенно полезна при работе с базами данных и другими типами данных, содержащих элементы, которым может быть не назначено значение. Например, логическое поле в базе данных может хранить значения true или false или может быть не задано.

     
    class NullableExample
    {
     static void Main()
     {
     int? num = null;
    
     // Is the HasValue property true? 
     if (num.HasValue)
     {
     System.Console.WriteLine("num = " + num.Value);
     }
     else
     {
     System.Console.WriteLine("num = Null");
     }
    
     // y is set to zero 
     int y = num.GetValueOrDefault();
    
     // num.Value throws an InvalidOperationException if num.HasValue is false 
     try
     {
     y = num.Value;
     }
     catch (System.InvalidOperationException e)
     {
     System.Console.WriteLine(e.Message);
     }
     }
    }
    

    Выходные данные показаны в примере:

    num = Null

    Nullable object must have a value.

    Дополнительные примеры см. в разделе Использование допускающих значение NULL типов (Руководство по программированию на C#)

    Общие сведения о типах, допускающих значения NULL

     

    Типы, допускающие значения NULL, имеют следующие характеристики.

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

    • Синтаксис T? является краткой формой для Nullable, где T — это тип значения. Две эти формы взаимозаменяемы.

    • Назначение значения для типа, допускающего значение null, выполняется так же, как и для обычного типа значения, например int? x = 10; или double? d = 4.108. Типу, допускающему значение "null", также можно присваивать значение null: int? x = null.

    • Используйте метод Nullable.GetValueOrDefault для возврата назначенного значения или значения по умолчанию для базового типа, если значением является null, например int j = x.GetValueOrDefault();

    • Воспользуйтесь свойствами только для чтения HasValue и Value для тестирования наличия значения null и извлечения значения, как показано в следующем примере: if(x.HasValue) j = x.Value;

      • Свойство HasValue возвращает true, если переменная содержит значение, или false, если оно null.

      • Свойство Value возвращает значение, если оно назначено. В противном случае создается исключениеInvalidOperationException.

      • По умолчанию для свойства HasValue используется значение false. Свойство Value не имеет значения по умолчанию.

      • С типом, допускающим значение null, можно также использовать операторы == и !=, как показано в следующем примере: if (x != null) y = x;

    • Используйте оператор ??, чтобы назначить значение по умолчанию, которое применяется в том случае, если тип с текущим значением null, допускающий значения NULL, назначен типу, не допускающему значения NULL (например, int? x = null; int y = x ?? -1;)

    • Вложенные типы, допускающие значения NULL, использовать нельзя. Компиляция следующей строки невозможна:Nullable<Nullable<int>> n;

    Спецификация языка C#

     

    Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

     
    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz