Menu
Coddy logo textTech

Nullable Value Types

Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 32 из 66.

В C# типы значений, такие как int, float и bool, обычно не могут содержать значение null. Nullable типы значений позволяют этим типам представлять либо значение, либо null.

Объявление обычного int:

int regularNumber = 10;

Объявите nullable int с использованием синтаксиса ? :

int? nullableNumber = 20;

Присвойте null типу, допускающему значение null:

nullableNumber = null;

После выполнения приведенного выше кода nullableNumber не содержит значения (null).

Проверить, есть ли значение у nullable-типа:

if (nullableNumber.HasValue)
{
    Console.WriteLine("Value is: " + nullableNumber.Value);
}
else
{
    Console.WriteLine("No value");
}

Вы также можете использовать оператор нулевого слияния для предоставления значения по умолчанию:

int definiteNumber = nullableNumber ?? 0;
challenge icon

Задание

Легко

Создайте метод с именем ProcessNullableAge, который:

  1. Принимает параметр nullable int с именем age
  2. Проверяет, имеет ли возраст значение
  3. Если значение есть, выводит "Age is: X years" (где X — это значение)
  4. Если значения нет, выводит "Age not provided"
  5. Возвращает значение возраста, если оно присутствует, иначе возвращает 0

Попробуйте сами

using System;

class Program
{
    // Реализуйте метод ProcessNullableAge здесь
    
    static void Main(string[] args)
    {
        string input = Console.ReadLine();
        
        int? age = null;
        if (input != "null")
        {
            age = int.Parse(input);
        }
        
        int result = ProcessNullableAge(age);
        Console.WriteLine("Returned value: " + result);
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком