if的作用是程序流控制,会直接编译、执行。
#if是对编译器的指令,其作用是告诉编译器,有些语句行希望在条件满足时才编译。

--------------------------------------------------------------------------------------------------------------------

#if 使您可以开始条件指令,测试一个或多个符号以查看它们是否计算为 true。如果它们的计算结果确实为 true,则编译器将计算位于 #if 与最近的 #endif 指令之间的所有代码。例如,

 
复制
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif

可以使用运算符 ==(相等)、!=(不相等)、&&(与)及 ||(或)来计算多个符号。还可以用括号将符号和运算符分组。

使用 #if 以及 #else#elif#endif#define 和 #undef 指令,可以包括或排除基于由一个或多个符号组成的条件的代码。这在编译调试版本的代码或编译特定配置时最为有用。

以 #if 指令开始的条件指令必须用 #endif 指令显式终止。

#define 使您可以定义一个符号,通过将该符号用作传递给 #if 指令的表达式,使该表达式计算为 true

也可以用 /define 编译器选项来定义符号。可以用 #undef 来取消定义符号。

用 /define 或 #define 定义的符号与具有同一名称的变量不冲突。即,不应将变量名传递到预处理器指令,并且只能用预处理器指令计算符号。

用 #define 创建的符号的范围是在其中定义该符号的文件。

 
复制
// preprocessor_if.cs
#define DEBUG#define VC_V7
using System;
public class MyClass
{
static void Main()
{
#if (DEBUG && !VC_V7)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
Console.WriteLine("DEBUG and VC_V7 are defined");
#else
Console.WriteLine("DEBUG and VC_V7 are not defined");
#endif
}
}

输出

DEBUG and VC_V7 are defined

最新文章

  1. iOS获取当前时间
  2. EMC Documentum DQL整理(一)
  3. C语言 malloc、calloc、realloc的区别
  4. 记sql语句空格带来的问题
  5. 文件的搜寻【转vbird】
  6. SPOJ 7758. Growing Strings AC自动机DP
  7. Flatten Binary Tree to Linked List (LeetCode #114 Medium)(LintCode #453 Easy)
  8. python的行与缩进
  9. javascript 的对象
  10. Java DB 访问之(四) spring mvc 组合mybatis
  11. 【前端】HTML中最适合做按钮的元素
  12. GetBitmapFromScreen
  13. 小程序二层嵌套循环数据:微信小程序开发(交流QQ群:604788754)
  14. HTML常用标签及属性
  15. SQL——sql年龄段查询
  16. Linux开源监控平台 -- Zabbix 小白安装以及使用
  17. 深入理解java虚拟机-01 走进java
  18. 201709013工作日记--Android消息机制HandlerThread
  19. Xilinx中的xapp1052理解
  20. C# 递归函数详细介绍及使用方法

热门文章

  1. 编写高质量代码改善C#程序的157个建议——建议21:选择正确的集合
  2. c++基础之struct
  3. Java java.lang.Thread#join()方法分析
  4. I-team 博客全文检索 Elasticsearch 实战
  5. C# 在Winform设计一个耗时较久的任务在后台执行时的状态提示窗口
  6. Hibernate的工作流程以及三种状态
  7. 公共子序列(luogu P1439)
  8. [jvm]java内存模型
  9. WCF 客户端连接慢
  10. Wormholes 虫洞 BZOJ 1715 spfa判断负环