C#中 #if #endif的使用

来源:互联网 发布:联想网络同传edu8.0.1 编辑:程序博客网 时间:2024/06/04 20:54

#if #endif其实是C#预处理器指令中的两个。

预处理指令还包括以下这么多个,有兴趣的可以直接到C#指南查看



那么#if #endif如何使用呢?

先看定义“如果 C# 编译器遇到 #if 指令,最终是 #endif 指令,仅当定义指定的符号时,它才编译这些指令之间的代码。

意思是当C#编译器遇到一个由#if和#endif包围起来的语句块时,会检查#if后面的符号是否已经被定义了,如果已经被定义,那么才会编译语句块之间的代码。而定义一个可以被#if测试的符号需要事先用#define指令定义。(或/define指令,效果一样)


举个栗子

// 官方示例  #define DEBUG#define MYTEST  // 使用#define定义了一个DEBUG和MYTEST符号using System;  public class MyClass   {      static void Main()       {  #if (DEBUG && !MYTEST)  // 不为true 以下代码不编译        Console.WriteLine("DEBUG is defined");  #elif (!DEBUG && MYTEST)          Console.WriteLine("MYTEST is defined");  #elif (DEBUG && MYTEST)  // 为true,以下代码编译        Console.WriteLine("DEBUG and MYTEST are defined");  #else          Console.WriteLine("DEBUG and MYTEST are not defined");  #endif      }  } 

输出:

DEBUG and MYTEST are defined

原创粉丝点击