Вы можете создать List<Action>
, и для каждого из условий (часть if(someCondition)
) добавить методы, которые вы хотите вызвать, в список действий, а затем в конце цикла выполнить действия ивыполнить каждый из них.
Если ваши методы не соответствуют шаблону Action<T>
(ноль или один параметр, не возвращает значение), вы можете создать другой пользовательский делегат, который будет действовать таким же образом.
И вот вам некоторый псевдокод:
static void Main(string[] args)
{
List<Action> actionList = new List<Action>();
if (true)
{
actionList.Add(new Action(DoSomething));
}
// etc.
foreach (Action a in actionList)
{
a();
}
}
static void DoSomething()
{
// Code to do something.
}
Я знаю, что это кажется более длинным, более замысловатым способом использования подхода if / else из поста ОП, но в некоторых случаях это можетна самом деле быть лучше дизайн (просто не во всех случаях).Трудно понять, что будет хорошо работать, так как ОП была такой расплывчатой.