Elementor Header #8

27. Значение null

27. Значение null в C#

1. Введение

В C# значение null обозначает отсутствие ссылки на объект. Это означает, что переменная не указывает ни на какие данные в памяти.

📌 Важно! null можно присваивать только ссылочным типам (string, object, class), а также nullable-типам значений (int?, double?).

				
					string message = null;  // Строка не инициализирована
object obj = null;      // Объект отсутствует

				
			

2. null для ссылочных типов

Когда ссылочная переменная содержит null, это означает, что она не ссылается ни на один объект в памяти.

				
					string name = null;
Console.WriteLine(name);  // Ошибка: попытка использовать null

				
			

Если попытаться вызвать метод или обратиться к свойству такой переменной – произойдет исключение NullReferenceException.

Как избежать ошибки:

				
					string name = null;
if (name != null)
{
    Console.WriteLine(name.Length);
}
else
{
    Console.WriteLine("Переменная не содержит данных");
}

				
			

3. null для nullable-типов (int?, double?)

Обычные числовые типы (int, double, bool) не могут быть null, но их можно сделать nullable (int?, double?).

				
					int? age = null;
double? price = 99.99;

				
			

Для проверки, содержит ли переменная значение, используется свойство .HasValue:

				
					if (age.HasValue)
{
    Console.WriteLine($"Возраст: {age.Value}");
}
else
{
    Console.WriteLine("Возраст неизвестен");
}

				
			

4. Оператор объединения с null (??)

Позволяет задать значение по умолчанию, если переменная null.

				
					string name = null;
string displayName = name ?? "Неизвестный";
Console.WriteLine(displayName);  // Выведет "Неизвестный"

				
			

📌 Работает и с nullable-числами:

				
					int? number = null;
int result = number ?? 10;  // Если number == null, то результат 10
Console.WriteLine(result);   // Выведет 10

				
			

5. Оператор ?. (Null-conditional, «безопасная» навигация)

Позволяет избежать NullReferenceException при обращении к методам и свойствам null-объекта.

				
					string text = null;
Console.WriteLine(text?.Length);  // Выведет null, ошибки не будет

				
			

Сравните с обычным вызовом:

				
					Console.WriteLine(text.Length);  // Ошибка: NullReferenceException!

				
			

Заключение

🔹 null – это отсутствие объекта для ссылочных типов и nullable-чисел.
🔹 Чтобы избежать NullReferenceException, используйте:
?? (значение по умолчанию)
?. (безопасная навигация)
.HasValue (проверка nullable-типов)

🚀 Правильная работа с null делает код надежнее и защищает от ошибок!

Тестовое задание

  1. Создайте переменную string, присвойте ей null.
  2. Используйте оператор ??, чтобы вывести значение по умолчанию, если переменная null.
  3. Создайте int? и проверьте, есть ли в нем значение .HasValue.

Пример решения:

				
					using System;

class Program
{
    static void Main()
    {
        string name = null;
        Console.WriteLine(name ?? "Имя не указано");

        int? number = null;
        Console.WriteLine(number.HasValue ? $"Число: {number}" : "Число отсутствует");
    }
}

				
			

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

Codefor-Tech Чат

Привет! Я AI-бот. Чем могу помочь?
logo

Язык сайта: