У меня есть дерево UGLY-логики, в котором я ищу способы заменить кодом, созданным из таблицы. Разветвляется на основе нескольких вещей:Смешанные типы в логическом дереве в C#
- длина
List<AbstractType>
- фактических типов в списке
- а флаги
enum
Моя основная идея заключается в том, чтобы построить какое-то дерево решений из таблицы ввода. Для длины списка и флагов это легко (switch
), но как насчет типов бит?
This question предлагает, чтобы полиморфизм был хорошей идеей, но это могло бы смешивать проблемы и вставлять код в четыре ветра в моем случае (и в любом случае не дает себе возможности генерировать). Другое предлагаемое решение (IDictionary<Type, DelegateType>
) может работать, но кажется немного уродливым.
У кого-нибудь есть предложения.
Если бы вы могли написать, как это выглядит сейчас, это поможет. –
Подумайте о логическом дереве на полпути между тем, что вы видите в The Daily WTF, и что-то, что вы просто пытаетесь избежать и с этим справитесь. Я ищу несколько общих решений, поэтому, если вы хотите больше, вы отвечаете на другой вопрос. – BCS