В случае длинного оператора case (скажем, обрабатывающего десятки различных событий в программе, управляемой событиями) порядок следования достаточно важен.
Упорядочивайте варианты по алфавиту или численно Если все варианты равнозначны, их размещение в алфавитном порядке улучшает читабельность.
Поместите правильный вариант первым Если у вас есть один корректный вариант и несколько исключений, поместите правильное значение первым. Отметьте в комментариях, что этот вариант является нормальным, а все остальные — исключительными.
Отсортируйте варианты по частоте Поместите наиболее часто встречающиеся случаи в начало, а более редкие — в конец списка.
Сделайте обработку каждого варианта простой Код, связанный с каждым вариантом, должен быть коротким. Если действия, предпринимаемые для какого#то варианта слишком сложны, напишите метод и вызывайте его, а не размещайте весь этот код прямо в блоке case.
Не конструируйте искусственные переменные с целью получить возможность использовать оператор case Оператор case следует применять для простых данных, которые легко разбить на категории. Если ваши данные нельзя назвать простыми, используйте цепочки if-then-else.
Используйте вариант по умолчанию только для обработки настоящих значений по умолчанию Порой, когда остается единственный вариант, вы решаете закодировать его как вариант по умолчанию. Заманчиво, но... неразумно: вы лишаетесь автоматического документирования, предоставляемого метками оператора case, и теряете возможность определения ошибок с помощью варианта по умолчанию.
Используйте вариант по умолчанию для выявления ошибок Если вариант по умолчанию в операторе case не используется и не планируется для иных действий, разместите в нем диагностическое сообщение
|