预处理指令
所有的预处理指令都以 # 开始,并且在一行预处理指令中,只有空白字符可以出现在指令之前。预处理指令没有声明,所以他们不需要以分号(;)结尾。
C# 编译器不具有独立的预处理机制;然而,指令执行的时候就像是只有这一条一样。在 C# 中,预处理指令被用来帮助条件编译。不像 C 或 C++ 的指令,他们不能创建宏。一个预处理指令必须是这一行代码中的唯一的指令。
下面的表格中列出了 C# 中可用的预处理指令:
预处理指令是用来创建符号常量的。
下面的程序说明了这一点:
#define PI
using System;
namespace PreprocessorDAppl
{
class Program
static void Main(string[] args)
{
#if (PI)
Console.WriteLine("PI is defined");
#else
#endif
Console.ReadKey();
}
}
编译执行上述代码,得到如下结果:
你可以使用 #if 指令创建一个条件指令。条件指令可以用来判断一个或多个符号是否为真。如果他们的结果为真,编译器就会执行 #if 和下一条指令间的所有代码。
条件指令的语法如下:
operator symbol(运算符符号)是一种用于符号求值的运算符。运算符可以是下列之一:
- == (相等)
- != (不相等)
- && (与)
- || (或)
你也可以通过括号使用组符号和组运算符。条件指令用于编译代码生成 debug 或者是编译特定配置时。一个条件指令以 #if 开头并且必须明确的以 #endif 指令结束。
下面的程序示范了条件指令的使用方法:
编译执行上述代码,得到如下结果:
DEBUG and VC_V10 are defined