Защитные условия
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 19 из 66.
Guard clauses — это условные операторы в начале method, которые выполняют check пограничных случаев или недопустимых inputs и выполняют return early, если эти условия соблюдены.
Создадим метод без защитного условия:
public void ProcessOrder(Order order)
{
if (order != null)
{
// Обработать заказ
// Много строк кода здесь...
}
}Теперь перепишем это с помощью защитного условия:
public void ProcessOrder(Order order)
{
if (order == null)
{
return; // Охранное условие — ранний выход, если order равен null
}
// Обработать order
// Много строк кода здесь...
}Guard clauses улучшают читаемость, уменьшая вложенность и обрабатывая исключительные случаи в начале method.
Задание
ЛегкоСоздай метод с именем DivideNumbers, который принимает два целых числа: numerator и denominator.
- Добавь guard clause, чтобы check, равен ли denominator нулю.
- Если denominator равен нулю, выведи: "Cannot divide by zero" и return 0.
- В противном случае раздели numerator на denominator и верни result.
Попробуйте сами
using System;
public class Program
{
public static int DivideNumbers(int numerator, int denominator)
{
// Напишите ваш код здесь
}
public static void Main()
{
// Считайте входные данные из консоли
int numerator = Convert.ToInt32(Console.ReadLine());
int denominator = Convert.ToInt32(Console.ReadLine());
// Вызовите метод DivideNumbers
int result = DivideNumbers(numerator, denominator);
// Выведите результат
Console.WriteLine(result);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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#