如何从其他文件中使用#define?

时间:2012-06-06 14:28:49

标签: c# c-preprocessor

例如:

define.cs

#define FOO

Form1.cs的

#if FOO 
  MessageBox.Show("foo is set!");
#else 
  MessageBox.Show("foo is not set!");
#endif
define.cs 包含在与 form1.cs 相同的项目中,但上述条件为:foo is not!

5 个答案:

答案 0 :(得分:11)

您不能,但您可以做的是将定义移动到项目配置,以便项目中的所有文件都可以看到定义。

请参阅How to define a constant globally in C# (like DEBUG)中的说明。

答案 1 :(得分:2)

根据this MSDN page

  

使用 #define 创建的符号的范围是定义它的文件。

答案 2 :(得分:1)

你不能,用#define创建的符号的范围是定义它的文件。

答案 3 :(得分:1)

正如其他人所说,#define定义为单个文件。

但是,您可以定义作用于整个程序集的预处理程序变量。要执行此操作,您只需进入项目设置的“构建”部分,并将其放入“条件编译符号”部分。 (这只是管理/define compiler switch的一种更简单的方法。)这种方法还有一个额外的好处,就是让你为不同的构建配置定义不同的符号集。

答案 4 :(得分:1)

在C#中,#define的范围仅限于声明它的文件 要定义所有文件中可见的符号,一种方法是Project-> Properties-> Build-> Conditional Compilation Symbols并在那里指定符号“FOO”。