Методы упрощения некрасивых вложенных деревьев if-else в C # - PullRequest
5 голосов
/ 24 октября 2009

Иногда я пишу некрасивые операторы if-else в C # 3.5; Мне известны некоторые разные подходы к упрощению этого с помощью табличной разработки, иерархии классов, анонимных методов и некоторых других. Проблема в том, что альтернативы все еще менее распространены, чем написание традиционных уродливых операторов if-else, потому что для этого нет соглашения.

Какая глубина вложенного if-else является нормальной для C # 3.5? Какие методы вы ожидаете увидеть вместо вложенных if-else первым? второй?

если у меня есть десять входных параметров с 3 состояниями в каждом, я должен сопоставить функции с комбинацией каждого состояния каждого параметра (на самом деле меньше, потому что не все состояния допустимы, но иногда все еще много). Я могу выразить эти состояния в виде ключа хеш-таблицы и обработчика (лямбда), который будет вызываться при совпадении ключа.

Это все еще смесь таблиц, управляемых данными dev. идеи и сопоставление с образцом.

то, что я ищу, это расширение для C # таких подходов, как это для сценариев (C # 3.5 скорее похож на сценарии) http://blogs.msdn.com/ericlippert/archive/2004/02/24/79292.aspx

Ответы [ 11 ]

0 голосов
/ 25 октября 2009

попробуйте использовать шаблоны, такие как стратегия или команда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...