原文链接
正文
写在前面
- 起因:我在回顾LuaFramework_UGUI(作者Jarjin Lee)代码时,看到了 C# 代码中的条件编译符号,比如下图的
ASYNC_MODE。虽然字面上知道是什么意思,但我对 VS 的条件编译符号其实不太清楚,所以查了下资料,写下此博文作为记录。
-
与正文无关,但或许会用到的参考资料:
VS 条件编译符号
在 VS 里
怎么加
- 以 VS 工程 TestMisc 为例,打开项目属性面板,如下图(项目->TestMisc 属性)。
打开项目属性面板
- 在项目属性面板的 “生成” 页下,选择条件编译符号所在 “配置”,添加或编辑要用的条件编译符号,修改完按 Ctrl+s 保存。如下图,我在名为 “Debug” 的配置下,新加了一个条件编译符号
aaa。如果切换到其他 “配置”(比如切换到 “Release” 配置),是不能看到条件编译符号aaa的。
怎么用
- 作为对比,我在配置管理器中新建了一个名为 “Local” 的配置,具体操作如下:
打开配置管理器
新建配置
新配置起名为 Local
- 按前面的方法,我在 Local 配置下新加了一个名为
bbb的条件编译符号。
- 在主程序里,我加入以下测试代码,测试在 Local 配置下,和在 Debug 配置下的打印情况。
static void Main(string[] args)
{
#if aaa
Console.WriteLine("this is aaa");
#endif
#if bbb
Console.WriteLine("this is bbb");
#endif
Console.ReadLine();
}
测试结果:在 Debug 配置下,只能看到 aaa 的打印;在 Local 配置下,只能看到 bbb 的打印。
Debug 配置下,只能看到
aaa的打印
Local 配置下,只能看到
bbb的打印
- 显然,条件编译符号只能在指定配置下使用,它们的触发条件都是
true(就是都能用的意思)。
在 Unity 里
怎么加
- 在 Unity 里,如果按上面操作来加条件编译符号是 无效 的,再次打开 VS 会发现恢复默认值。官网有介绍加在哪里,即 Project Settings -> Player 设置面板中的 OtherSettings -> Configuration -> Scripting Define Symbols 栏,即下图橙框处,这里我加的是
ZZZ。
相关代码是
怎么用
- 加完即可在代码中使用条件编译符号。