Несколько сравнений на С#

  • Автор темы Автор темы ftbwork10
  • Дата начала Дата начала

ftbwork10

Client
Регистрация
29.05.2017
Сообщения
451
Реакции
707
Баллы
93
Всем привет

есть переменная status_account

она имеет значения 1, 2, 3 ... 100

проверяю их так

'{-Variable.status_account-}' == '1'
Установить значение переменной ACC - banned

'{-Variable.status_account-}' == '2'
Установить значение переменной ACC - blocked

и там много переменных, из-за кубиков получается большое полотно, как можно это в C# сделать?)

чтобы исходя от числа ответ 1, 2, 3 оно назначало статус

1-banned
2-blocked

и т. д.
 
Через switch не вариант?
 
C#:
Развернуть Свернуть Копировать
switch(project.Variables["status_account"].Value){
    case "1" : project.Variables["ACC"].Value = "banned"; break;
    case "2" : project.Variables["ACC"].Value = "blocked"; break;
    // дальше аналогично ....
}
 
  • Оценить
Реакции: ftbwork10
C#:
Развернуть Свернуть Копировать
switch(project.Variables["status_account"].Value){
    case "1" : project.Variables["ACC"].Value = "banned"; break;
    case "2" : project.Variables["ACC"].Value = "blocked"; break;
    // дальше аналогично ....
}
супер!
 
C#:
Развернуть Свернуть Копировать
switch(project.Variables["status_account"].Value){
    case "1" : project.Variables["ACC"].Value = "banned"; break;
    case "2" : project.Variables["ACC"].Value = "blocked"; break;
    // дальше аналогично ....
}
case "1" : project.Variables["ACC"].Value = "banned"; break; а можно две переменные указать? ACC и ACC1?
 
Честно говоря, свитч конечно хорошо, но все же, данную задачу нужно решать по другому (так как конечное количество статусов нам не известно, может оказаться так, что их окажется например 10, а завтра захотим ещё добавить парочку - и что тогда - переписывать код?).
Предлагаю решать вопрос кардинально по другому, не используя switch - сохраняем себе где-то коллекцию/словарь/массив с парами ключ/значение, и просто дёргаем нужное значение по ключу.
Пример:
C#:
Развернуть Свернуть Копировать
var dic = new Dictionary<int, string>(){
    {1, "banned"},
    {2, "blocked"}
};

int status = int.Parse(project.Variables["status_account"].Value);
project.Variables["ACC"].Value = dic[status];
И тогда, если вдруг нам нужно много статусов добавить - просто добавляем нужные значения в словарь, без переписывания всей логики во всех кубиках (словарь можно хранить в общем коде как static например или в project.Context.
 

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