Очень легко написать кучу операторов if-else для множество различных условий, действие которых очень повторяется, но с немного разными значениями переменных, которые нужно установить.
Рассмотрим этот пример:
Код: Выделить всё
if (condition1 == 0 || condition2 == 0)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is this";
}
else if (condition3 == 1 || condition4 == 100)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is something else";
}
else if (condition5 == 2 || condition6 == 10)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is more";
}
Как написать это оптимизированно, чтобы код выглядел сжатым (легко читаемым), а добавление дополнительных условий - это просто добавление одной строки?
Мое предложение следующее:
Код: Выделить всё
var ConditionsList - new List
{
(condition1 == 0 || condition2 == 0, "Status is this"),
(condition3 == 1 || condition4 == 100, "Status is something else"),
(condition5 == 2 || condition6 == 10, "Status is more")
};
foreach (var condition in ConditionsList)
{
if(condition.Condition)
{
variable1 = 1;
variable2 = 100;
Reason = condition.Reason;
break; //optional
}
}
После того, как я реализовал это один раз в своем коде, я был удивлен, обнаружив, что его можно применять во многих местах. с некоторыми вариациями.
Есть ли лучший способ решить эту проблему или нет?
Подробнее здесь: https://stackoverflow.com/questions/788 ... tive-if-el