预处理指令

    所有的预处理指令都以 # 开始,并且在一行预处理指令中,只有空白字符可以出现在指令之前。预处理指令没有声明,所以他们不需要以分号(;)结尾。

    C# 编译器不具有独立的预处理机制;然而,指令执行的时候就像是只有这一条一样。在 C# 中,预处理指令被用来帮助条件编译。不像 C 或 C++ 的指令,他们不能创建宏。一个预处理指令必须是这一行代码中的唯一的指令。

    下面的表格中列出了 C# 中可用的预处理指令:

    预处理指令是用来创建符号常量的。

    下面的程序说明了这一点:

    1. #define PI
    2. using System;
    3. namespace PreprocessorDAppl
    4. {
    5. class Program
    6. static void Main(string[] args)
    7. {
    8. #if (PI)
    9. Console.WriteLine("PI is defined");
    10. #else
    11. #endif
    12. Console.ReadKey();
    13. }
    14. }

    编译执行上述代码,得到如下结果:

    你可以使用 #if 指令创建一个条件指令。条件指令可以用来判断一个或多个符号是否为真。如果他们的结果为真,编译器就会执行 #if 和下一条指令间的所有代码。

    条件指令的语法如下:

    operator symbol(运算符符号)是一种用于符号求值的运算符。运算符可以是下列之一:

    • == (相等)
    • != (不相等)
    • && (与)
    • || (或)

    你也可以通过括号使用组符号和组运算符。条件指令用于编译代码生成 debug 或者是编译特定配置时。一个条件指令以 #if 开头并且必须明确的以 #endif 指令结束。

    下面的程序示范了条件指令的使用方法:

    编译执行上述代码,得到如下结果:

    1. DEBUG and VC_V10 are defined