C#中if和#if区别
2024-09-27 19:05:09
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
最新文章
- iOS获取当前时间
- EMC Documentum DQL整理(一)
- C语言 malloc、calloc、realloc的区别
- 记sql语句空格带来的问题
- 文件的搜寻【转vbird】
- SPOJ 7758. Growing Strings AC自动机DP
- Flatten Binary Tree to Linked List (LeetCode #114 Medium)(LintCode #453 Easy)
- python的行与缩进
- javascript 的对象
- Java DB 访问之(四) spring mvc 组合mybatis
- 【前端】HTML中最适合做按钮的元素
- GetBitmapFromScreen
- 小程序二层嵌套循环数据:微信小程序开发(交流QQ群:604788754)
- HTML常用标签及属性
- SQL——sql年龄段查询
- Linux开源监控平台 -- Zabbix 小白安装以及使用
- 深入理解java虚拟机-01 走进java
- 201709013工作日记--Android消息机制HandlerThread
- Xilinx中的xapp1052理解
- C# 递归函数详细介绍及使用方法
热门文章
- 编写高质量代码改善C#程序的157个建议——建议21:选择正确的集合
- c++基础之struct
- Java java.lang.Thread#join()方法分析
- I-team 博客全文检索 Elasticsearch 实战
- C# 在Winform设计一个耗时较久的任务在后台执行时的状态提示窗口
- Hibernate的工作流程以及三种状态
- 公共子序列(luogu P1439)
- [jvm]java内存模型
- WCF 客户端连接慢
- Wormholes 虫洞 BZOJ 1715 spfa判断负环