Основы ссылок на null
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 31 из 66.
В C# null-ссылка представляет отсутствие объекта. Понимание того, как работать с null-значениями, необходимо для написания надежного кода.
Объявите переменную ссылочного типа (например, string) без присвоения значения:
string name = null;Переменная 'name' теперь содержит ссылку null, что означает, что она не указывает ни на какой объект в памяти.
Попытка использовать ссылку null без проверки может вызвать ошибки во время выполнения:
string name = null;
// This will throw a NullReferenceException
int length = name.Length;Вы можете проверить, не равна ли ссылка null, перед её использованием:
string name = null;
if (name != null)
{
// Safe to use name here
int length = name.Length;
}Вы также можете присвоить переменной значение, не равное null:
string name = null;
name = "John";
// Now it's safe to use name
int length = name.Length; // length will be 4Задание
ЛегкоСоздайте метод с именем ProcessName, который принимает строковый параметр с именем name. Метод должен:
- Проверить, является ли имя null
- Если имя равно null, вывести: "Name is null"
- Если имя не равно null, вывести: "Name length is X" (где X — длина имени)
Попробуйте сами
using System;
class Program
{
public static void ProcessName(string name)
{
// Напишите свой код здесь
}
static void Main(string[] args)
{
string input = Console.ReadLine();
// Преобразование строки "null" в реальный null
string name = input.ToLower() == "null" ? null : input;
ProcessName(name);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#