预处理指令指导编译器在实际编译开始前对信息进行预处理。
下表是一些常用预处理指令:
预处理器指令 | 描述 |
---|
#define | 它用于定义一系列成为符号的字符。 |
#undef | 它用于取消定义符号。 |
#if | 它用于测试符号是否为真。 |
#else | 它用于创建复合条件指令,与 #if 一起使用。 |
#elif | 它用于创建复合条件指令。 |
#endif | 指定一个条件指令的结束。 |
#line | 它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。 |
#error | 它允许从代码的指定位置生成一个错误。 |
#warning | 它允许从代码的指定位置生成一级警告。 |
#region | 它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。 |
#endregion | 它标识着 #region 块的结束。 |
请看以下实例:
#define PI
#define DEBUG
#define VC_V10
using System;namespace One
{class bianl{/*#region 和 #endregion 指令用于把一段代码标记为有给定名称的一个*/#region Member Field Declarationspublic int x;double d;string s;#endregion}class Program{/*当编译器遇到它们时,会分别产生警告或错误。如果编译器遇到 #warning 指令,会给用户显示 #warning 指令后面的文本,之后编译继续进行。如果编译器遇到 #error 指令,就会给用户显示后面的文本,作为一条编译错误消息,然后会立即退出编译。使用这两条指令可以检查 #define 语句是不是做错了什么事,使用 #warning 语句可以提醒自己执行某个操作。*/static void Main(string[] args){ #if (DEBUG && !VC_V10)
#error "You are not defined VC_V10 !"Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V10)
#warning "DEBUG not defined !"Console.WriteLine("VC_V10 is not defined");
#elif (DEBUG && VC_V10)Console.WriteLine("DEBUG and VC_V10 are defined");
#elseConsole.WriteLine("DEBUG and VC_V10 are not defined");
#endifConsole.ReadKey();}}
}