C#预处理指令

预处理指令--使编译器在“实际开始之前”对信息进行预处理操作

        1.以#开头

        2.不需要分号结束--非语句

        3.无单独的预处理器--像,指令处理时

        4.预处理器用于条件编译,与C&C++不同的是非宏创建--必须是该行上唯一的预处理指令

C#预处理指令列表:

预处理器指令 描述
#define 定义一系列成为符号的字符
#undef 取消定义符号
#if 测试符号是否为真
#else 创建复合条件指令,与 #if 一起使用
#elif 创建复合条件指令
#endif 指定条件结束指令
#line 修改编译器的行数以及(可选地)输出错误和警告的文件名
#error 指定位置生成一个错误
#warning 指定位置生成一级警告
#region 指定一个可展开或折叠的代码块
#endregion #region 块的结束

重点解释以下预处理指令

#define预处理器

        语法结构:#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();
      }
   }
}

        采用#define定义一个符号常量PI,结合#if & #else & #endif 

        PI传递大#if表达式时,其值为ture

条件指令:用于测试符号(symbol)是否为真

        语法:#if symbol [operator symbol]...

        还可以使用0 | 1,或运算符(==、!=、&&、||)代替symbol

实例

#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、VC_V10即符号存在-true

你可能感兴趣的:(C#,c#,开发语言)