2015-05-20 31 views
3

试图在Visual Studio 2012在visual studio中指定预处理指令的位置?

#define FLAG 
.... 
#endif 

但不知道,其中包括此FLAG在Visual Studio中定义一个预处理指令 - C#。我记得在C++项目中指定了这样的东西。

有什么想法?

+1

C#没有预处理器。 –

+2

项目属性 - >构建 - >条件编译符号 – DavidG

+0

@RobertHarvey:我只剩下使用'debug'和'release'标志了吗?有没有其他解决方法? –

回答

9

你有两个选择:

  1. 的代码文件级别定义它。在文件的开头写入#define FLAGdefine指令前不能放置任何其他内容(注释和空白行除外)。正如Ron Beyer指出的那样,文件中定义的指令只存在于该文件中。

  2. 在项目级定义它。右键单击解决方案资源管理器中的项目,选择“属性”,然后选择“构建”选项卡,然后查看“条件编译符号”。您可以在此处定义几个以逗号分隔的符号:FLAG,FOO,BAR。请注意,此符号列表取决于项目配置(在同一选项卡中有一个配置选择器)。

而作为EBrown poins出来,define不工作在C#中同样的方式,它在C.在C#中,你只需要声明的是,符号存在,但你不能将值分配给它。因此,这些符号的唯一用途是#if FLAG指令和the Conditional attribute

+0

您应该注意,在代码文件级别定义它只定义该代码文件的标志,而不是在项目范围内进行。它背离了C++的工作原理。 –

+0

@RonBeyer好点,回答更新。 – Konamiman

+0

另请注意,您无法为这些定义指定*值*。你只能指定*定义本身。* –