预处理程序指令
预处理程序指令通常用于使源程序易于更改,并且易于在不同的执行环境中编译。源文件中的指令告诉预处理器执行特定操作。例如,预处理器可以替换文本中的标记,将其他文件的内容插入到源文件中,或者通过删除文本部分来禁止编译部分文件。在宏扩展之前识别并执行预处理器行。因此,如果宏扩展为看起来像预处理器命令的内容,则预处理器无法识别该命令。
预处理程序语句使用与源文件语句相同的字符集,但不支持转义序列。预处理程序语句中使用的字符集与执行字符集相同。预处理器还可识别负字符值。
条件表达式
条件表达式(#if
,#elif
等)确实支持布尔运算符的有限子集。他们是:
==
和!=
。这些只能用于测试符号是真(定义)还是假(未定义)&&
,||
,!
()
例如:
#if !DEBUG && (SOME_SYMBOL || SOME_OTHER_SYMBOL) && RELEASE == true
Console.WriteLine("OK!");
#endif
会编译打印“OK!”的代码。如果未定义 DEBUG
,则向控制台定义 SOME_SYMBOL
或 SOME_OTHER_SYMBOL
,并定义 RELEASE
。
注意:这些替换在编译时完成*,*因此无法在运行时进行检查。通过使用 #if
消除的代码不是编译器输出的一部分。
另请参阅: MSDN 上的 C#预处理器指令 。