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

adr1enette

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

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

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

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

adr1enette

Client
Регистрация
30.11.2022
Сообщения
55
Благодарностей
14
Баллы
8
у switch нет зеленых и красных линий. Нет провала или успеха, не представляю как в switch все это можно "упростить". Но если знаете как, я был бы крайне благодарен за такую информацию.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
у switch нет зеленых и красных линий. Нет провала или успеха, не представляю как в switch все это можно "упростить". Но если знаете как, я был бы крайне благодарен за такую информацию.
если бы задача была более четко поставлена... то могли бы появиться идеи... но пока ничего не понятно на самом деле.
ну и насчет зеленых линий в свиче.... их там конечно нет ;-)

100983
 

adr1enette

Client
Регистрация
30.11.2022
Сообщения
55
Благодарностей
14
Баллы
8
если бы задача была более четко поставлена... то могли бы появиться идеи... но пока ничего не понятно на самом деле.
ну и насчет зеленых линий в свиче.... их там конечно нет ;-)

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
вроде вот так...

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();
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Вот как оно выглядит наглядно, и как я хочу сделать. Вариант слева полностью рабочий (я убрал много экшенов, это чисто наглядный пример), а вариант справа, то как хочу сделать чтобы оно работало. Без лишних сотней экшенов, лишь все в одном. Надеюсь это сильно поможетПосмотреть вложение 100995
C#:
string username = project.Variables["username"].Value;

if (username != "2" && username != "3" && username != "4")
{
    return "good";
}
else
{
    return null;
}
 
  • Спасибо
Реакции: Sergodjan и adr1enette

adr1enette

Client
Регистрация
30.11.2022
Сообщения
55
Благодарностей
14
Баллы
8
Спасибо! Сработало
 

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
549
Благодарностей
1 130
Баллы
93
Привет, это мой вопрос от новичка. У меня есть экшены 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, чтобы точное совпадение искать.
 

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