位置:首页 > 高级语言 > C#在线教程 > C#预处理指令

C#预处理指令

预处理器指令编译器预处理指令在给定的信息实际编译开始之前。

所有的预处理指令以#开头,只使用空白字符在同一行上的预处理器指令之前出现。预处理器指令都没有声明,所以他们不以分号(;)结束。

C#编译器不具有独立的预处理;然而,该指令进行处理,就好像有一个。在C#预处理器指令用于在条件编译帮助。不像C和C++指令,它们不是用来创建宏。预处理指令必须在一行中只有唯一指令。

预处理器指令在C#列表

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

预处理指令 描述
#define 它定义了字符序列,称为符号
#undef 它可以取消定义的符号
#if 它允许测试符号或符号来看看计算结果是否为true。
#else 它允许创建复合条件指令,使用#if
#elif 它允许创建复合条件指令
#endif 指定一个条件指令的末端
#line 它可以让修改编译器的行号和(可选)的文件名输出错误和警告
#error 它允许在代码生成从一个特定的位置的误差
#warning 它允许产生从一个特定的位置一级预警在代码中
#region 它可以让你指定使用Visual Studio代码编辑器的概述功能时展开或折叠代码块
#endregion 它标志着#region 块的结束

 #define 预处理

#define预处理指令创建符号常量。

#定义允许定义一个符号,例如,通过使用符号传递给 #if 指令的表达,表达将计算结果为true。它的语法如下:

#define symbol

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

#define PI 
using System;
namespace PreprocessorDAppl
{
   class Program
   {
      static void Main(string[] args)
      {
         #if (PI)
            Console.WriteLine("PI is defined");
         #else
            Console.WriteLine("PI is not defined");
         #endif
         Console.ReadKey();
      }
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

PI is defined

有条件的指令

可以使用#if指令来创建一个条件指令。有条件的指令是用于测试的象征或符号,看看计算结果为true。如果计算结果为true,编译器评估计算 #if 和下一个指令之间的所有代码。

有条件指令的语法是:

#if symbol [operator symbol]...

其中,符号是要测试的符号的名称。还可以使用真假或预先准备使用反运算符号。

操作符是用于评价计算该符号的运算符。运算符可以是以下几点:

  • == (相等)

  • != (不相等)

  • && (与)

  • || (或)

也使用可以组符号和运算符括号。有条件的指令用于编译代码的调试版本或编译的特定配置时。有条件指令与#if指令开头必须明确使用#endif指令终止。

下面的程序演示了如何使用条件指令:

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {

      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG is defined");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 is defined");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG and VC_V10 are defined");
      #else
         Console.WriteLine("DEBUG and VC_V10 are not defined");
      #endif
      Console.ReadKey();
   }
}

让我们编译和运行上面的程序,这将产生以下结果:

DEBUG and VC_V10 are defined