Вы можете использовать класс, который наследует абстрактный базовый класс ConditionalAction
, который может выглядеть следующим образом:
public abstract class ConditionalAction
{
public abstract bool Condition();
public abstract void Action();
}
Пример класса, который наследует ConditionalAction
:
public class SampleConditionalAction : ConditionalAction
{
public override bool Condition()
{
// Condition
}
public override void Action()
{
// Code
}
}
Пример реализации:
List<ConditionalAction> conditionalActions = new List<ConditionalAction>();
conditionalActions.Add(new SampleConditionalAction());
// Add more ConditionalActions...
foreach(ConditionalAction conditionalAction in conditionalActions)
{
if (conditionalAction.Condition())
conditionalAction.Action();
}
Главное место, где вы застряли бы с этим подходом, - это если вам нужна информация для ваших условий или ваших действий, но вы можете встроить ее, передав параметры вашим конструкторам вашихConditionalActions.