【发布时间】:2009-01-12 18:07:29
【问题描述】:
我想根据#define定义的一个常量,以不同的方式编译一个项目,像这样:
#define USE_COMPONENT_X
#if USE_COMPONENT_X
...
#endif
我可以在 C# 中做到这一点。但是当我转到同一个项目中的另一个文件时,没有定义这个常量。我可以以某种方式为所有项目定义一个常量,比如 DEBUG 是这样定义的吗?
【问题讨论】:
我想根据#define定义的一个常量,以不同的方式编译一个项目,像这样:
#define USE_COMPONENT_X
#if USE_COMPONENT_X
...
#endif
我可以在 C# 中做到这一点。但是当我转到同一个项目中的另一个文件时,没有定义这个常量。我可以以某种方式为所有项目定义一个常量,比如 DEBUG 是这样定义的吗?
【问题讨论】:
您可以添加 /define 编译器开关。
【讨论】:
您可能希望更进一步,创建不同的项目配置作为标准调试和发布项目配置的变体。构建菜单下的配置管理器将让您完成此操作。然后,当您在项目属性的“构建”选项卡中时,您可以选择各种配置并设置适合每个配置的条件编译常量。当您想要在条件编译代码的各种排列之间来回交换时,这将为您节省大量时间。
【讨论】:
希望我没有偏离主题,而是可能为常量类型定义一个接口,然后使用众多依赖注入框架之一来管理“常量”的定义、注入和生命周期,而不是“常量” .
【讨论】:
在您的 IDE 中设置它或使用编译器命令行开关,即 -define 用于 Mono。
【讨论】: