Экономия места с экшенами If

adr1enette

Client
Регистрация
30.11.2022
Сообщения
55
Реакции
14
Баллы
8
Привет, это мой вопрос от новичка. У меня есть экшены if, в которых прописана строка, которая сравнивает переменную с другими значениями, и в случае успеха, идет дальше, если провал и значение находится, то повторяет ряд действий и проект откидывает обратно.

Код "{-Variable.something-}" != "something_else"

И таких экшенов, где различие лишь в переменной something_else - куча. Всех их необходимо собрать в одном экшене (можно if, можно свой код javascript, неважно), используя будь то перечисление или банальное разделение кода.

Я только учусь, поэтому буду благодарен любой помощи. Спасибо.
 
не увидел вопроса.... одна констатация фактов.
ну... свитч пробовал ?

100982
 
у switch нет зеленых и красных линий. Нет провала или успеха, не представляю как в switch все это можно "упростить". Но если знаете как, я был бы крайне благодарен за такую информацию.
 
у switch нет зеленых и красных линий. Нет провала или успеха, не представляю как в switch все это можно "упростить". Но если знаете как, я был бы крайне благодарен за такую информацию.
если бы задача была более четко поставлена... то могли бы появиться идеи... но пока ничего не понятно на самом деле.
ну и насчет зеленых линий в свиче.... их там конечно нет ;-)

100983
 
если бы задача была более четко поставлена... то могли бы появиться идеи... но пока ничего не понятно на самом деле.
ну и насчет зеленых линий в свиче.... их там конечно нет ;-)


Вот как оно выглядит наглядно, и как я хочу сделать. Вариант слева полностью рабочий (я убрал много экшенов, это чисто наглядный пример), а вариант справа, то как хочу сделать чтобы оно работало. Без лишних сотней экшенов, лишь все в одном. Надеюсь это сильно поможет
100995
 
Последнее редактирование:
вроде вот так...

100996


C#:
Развернуть Свернуть Копировать
if (
    project.Variables["res"].Value != "1" &&
    project.Variables["res"].Value != "2" &&
    project.Variables["res"].Value != "3" &&
    project.Variables["res"].Value != "4"
    )
    return 0;
throw new Exception();
 
Вот как оно выглядит наглядно, и как я хочу сделать. Вариант слева полностью рабочий (я убрал много экшенов, это чисто наглядный пример), а вариант справа, то как хочу сделать чтобы оно работало. Без лишних сотней экшенов, лишь все в одном. Надеюсь это сильно поможетПосмотреть вложение 100995
C#:
Развернуть Свернуть Копировать
string username = project.Variables["username"].Value;

if (username != "2" && username != "3" && username != "4")
{
    return "good";
}
else
{
    return null;
}
 
  • Спасибо
Реакции: Sergodjan и adr1enette
Спасибо! Сработало
 
Привет, это мой вопрос от новичка. У меня есть экшены if, в которых прописана строка, которая сравнивает переменную с другими значениями, и в случае успеха, идет дальше, если провал и значение находится, то повторяет ряд действий и проект откидывает обратно.

Код "{-Variable.something-}" != "something_else"

И таких экшенов, где различие лишь в переменной something_else - куча. Всех их необходимо собрать в одном экшене (можно if, можно свой код javascript, неважно), используя будь то перечисление или банальное разделение кода.

Я только учусь, поэтому буду благодарен любой помощи. Спасибо.
Раз все свои варианты кидают, то тогда так ещё можно:
C#:
Развернуть Свернуть Копировать
if (!new[] { "1", "2", "3", "4" }.Contains(project.Variables["res"].Value, StringComparer.Ordinal))
    return true;
throw new Exception();
upd: добавил StringComparer.Ordinal, чтобы точное совпадение искать.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)