预处理指令
- 什么是预处理指令
- 基本规则
- 预处理指令
什么是预处理指令
  源代码指定了程序的定义,预处理指令(preprocessor directive)指示编译器如何处理源代码。
   例如,在某些情况下,我们可能希望编译器忽略一部分代码,而在其他情况下,我们可能希望代码被编译。预处理指令给了我们这样的选项。
   在 C 和 C++ 中有实际的预处理阶段,此时预处理程序遍历源代码并且为之后的编译阶段准备文本输出流,在C#中没有实际的预处理程序。“预处理” 指令由编译器来处理,而这个术语保留了下来
基本规则
- 预处理指令必须和C#代码在不同的行
- 与C#语句不同,预处理指令不需要以分号结尾
- 包含预处理指令的每一行必须以 # 字符开始
- 在 # 字符前可以有空格
- 在 # 字符和指令之间可以有空格
- 允许行尾注释
- 在预处理指令所在的行不允许分隔符注释
// 结尾没有分号
#define PremiumVersion // 正确
// 前面的空格
#define BudgetVersion // 正确
// 中间有空格
# define MediumVersion // 正确
// 不允许分隔符注释
#define PremiumVersion /* all bells & whistles */
// 行尾注释可以
#define BudgetVersion // Stripped-down version
预处理指令
| 指 令 | 含义概要 | 
| #define identifler | 定义编译符 | 
| #undef identifier | 取消定义编译符 | 
| #if expression | 如果表达式是 true,编译下面的片段 | 
| #elif expression | 如果表达式是 true,编译下面的片段 | 
| #else | 如果之前的 #if 或 #elif 表达式是 false,编译下面的片段 | 
| #endif | 标记为一个 #if 结构的结束 | 
| #region name | 标记一段代码的开始,没有编译效果 | 
| #endregion name | 标记一段代码的结束,没有编译效果 | 
| #warning message | 显示编译时的警告消息 | 
| #error message | 显示编译时的错误消息 | 
| #line indicator | 修改在编译器消息中显示的行数 | 
| #pragma text | 指定有关程序上下文的信息 | 
                










