Как использовать #define из другого файла?
например:
определить.cs
#define FOO
форма form1.cs
#if FOO
MessageBox.Show("foo is set!");
#else
MessageBox.Show("foo is not set!");
#endif
на определить.cs включены в тот же проект, что форма form1.cs но приведенное выше условие дают:foo is not!
5 ответов
вы не можете, но то, что вы можете сделать, это переместить определение в конфигурацию проекта, чтобы все файлы в проекте могли видеть определение.
посмотреть инструкции как определить константу глобально в C# (например, DEBUG).
по данным эта страница MSDN,
область действия символа, созданного с помощью #define это файл, в котором оно было определено.
вы не можете, область символа, созданного с помощью #define, - это файл, в котором он был определен.
как говорили другие, #define ограничен одним файлом.
однако можно определить переменные препроцессора, которые ограничены всей сборкой. Для этого вам просто нужно зайти в раздел "сборка" настроек проекта и поместить его в раздел "условные символы компиляции". (Это просто более простой способ управления /определение компилятора.) Этот подход имеет дополнительное преимущество, позволяя также определять различные наборы символов для различные конфигурации сборки.
в C# область #define ограничена только файлом, в котором он объявлен.
Чтобы определить символ, видимый во всех файлах, одним из способов является Project - >Properties->Build - >условные символы компиляции и указать символ "FOO" там.