Значение переключения, определенное во время выполнения в C#
У меня есть заявление в C#. Я хотел бы выбрать значения для случаев из файла конфигурации во время выполнения. Это возможно?
3 ответа
Не с заявлением о смене, нет. Метки случая должны быть константами времени компиляции.
У Марка Гравелла есть конструкция типа переключателя, которую вы могли бы использовать где-нибудь... Я постараюсь найти ее. Вполне возможно, что он не подходит для вашего конкретного использования.
Иначе, последовательность if/else if/else if [...] /else - это путь.
Поскольку значения, используемые в выражении case в C#, должны быть константами, я не думаю, что их можно установить во время выполнения из файла конфигурации.
Как уже говорили другие, оператору switch нужны значения во время компиляции, поскольку базовая хеш-таблица создается во время компиляции. Если у вас есть записи, которые определяются во время выполнения, я бы использовал хеш-таблицы / словари с шаблоном команды или делегатами на вашем месте.