@Coline

Как отрефакторить вложенные if else?

Имеется класс с набором состояний. В этом классе есть N функций. Каждая функция должна делать то или иное в зависимости от текущего состояния, попутно проверяя ввод. В итоге каждая функция похоже на что-то вроде
private void FuncN(string[] params)
{
    if (CheckFuncNParams(params))
        if (state == State.StateX)
            if (collection.ContainsKey(params[2]))
                index++;
            else
                Console.WriteLine("error message 3");
        else
            Console.WriteLine("error message 2");
    else
       Console.WriteLine("error message 1");
}

Можно развернуть проверки в линейные, но не знаю насколько стало лучше от этого
private void FuncN(string[] params)
{
    if (!CheckFuncNParams(params))
    {
        Console.WriteLine("error message 1");
        return;
    }
    if (state != State.StateX)
    {
        Console.WriteLine("error message 2");
        return;
    }
    if (collection.ContainsKey(params[2]))
        index++;
    else
        Console.WriteLine("error message 3");
}
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanielMcRon
@DanielMcRon
C# && Unity
Нужно повыносить всё в методы. И текст который вводится в Console.WriteLine генерировать зависимо от ошибки
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ПРОФЭЛИТ Казань
от 100 000 до 170 000 ₽
Vataga Москва
от 90 000 до 150 000 ₽
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
02 апр. 2020, в 09:54
1000 руб./за проект
02 апр. 2020, в 09:18
1000 руб./за проект
02 апр. 2020, в 08:52
1200 руб./в час