C# 预处理器指令与反射和特性详解
1. 预处理器指令
1.1 什么是预处理器指令
源代码定义了程序,而预处理器指令则指导编译器如何处理源代码。例如,在某些条件下,你可能希望编译器忽略部分代码;在其他条件下,又希望编译这些代码。预处理器指令为你提供了这些选择。在 C 和 C++ 中有实际的预处理器阶段,预处理器会处理源代码并生成文本输出流供后续编译阶段使用。而在 C# 中没有实际的预处理器,“预处理器” 指令由编译器处理,但这个术语仍然保留。
1.2 一般规则
预处理器指令有一些重要的语法规则:
- 预处理器指令必须与 C# 代码位于不同的行。
- 与 C# 语句不同,预处理器指令不以分号结尾。
- 包含预处理器指令的每一行都必须以#字符开头,#字符前和#字符与指令之间可以有空格。
- 允许行尾注释。
- 预处理器指令行中不允许使用定界注释。
以下代码展示了这些规则:
// No semicolon #define PremiumVersion // OK // Space before #define BudgetVersion // OK # define MediumVersion // OK // Delimited comments are not allowed. #define PremiumVersion