Как определить константу глобально в С# (например, DEBUG)

Я хочу скомпилировать проект по-другому, в соответствии с константой, определяемой #define, например:

#define USE_COMPONENT_X

#if USE_COMPONENT_X
...

#endif

и я могу сделать это на С#. Но когда я перехожу к другому файлу в том же проекте, эта константа не определена. Могу ли я каким-то образом определить константу для всего проекта, например, DEBUG определена?

Ответы

Ответ 1

Вы можете добавить переключатель /define компилятора.

  • Откройте диалоговое окно "Свойства страницы проекта".
  • Щелкните папку Свойства конфигурации.
  • Перейдите на страницу свойств Build.
  • Изменить свойство "Условные компиляции".

Ответ 2

Возможно, вы захотите сделать еще один шаг и создать различные конфигурации проектов в качестве вариантов стандартной конфигурации проекта Debug и Release. Диспетчер конфигурации в меню сборки позволит вам выполнить это. Затем, находясь на вкладке "Построение проекта", вы можете выбрать различные конфигурации и установить константы условной компиляции, которые подходят для каждой конфигурации. Это сэкономит вам много времени, когда вы захотите поменять местами между различными перестановками вашего условно скомпилированного кода.

Ответ 3

Установите его в свою среду IDE или используйте переключатель командной строки компилятора, т.е. - определить для Mono.

Ответ 4

Надеюсь, я не из темы, но вместо "константы", возможно, определим интерфейс для типа константы, а затем использую одну из многих фреймворков инъекций зависимостей для управления определением, инъекцией и временем жизни вашего "постоянного",.