#define

使用 #define 来定义符号。 将符号用作传递给 #if 指令的表达式时,该表达式的计算结果为 true,如以下示例所示:

#define DEBUG

说明

#define 令不能用于声明常量值,常量定义例:public const int value = 213;

C# 中的常量最好定义为类或结构的静态成员。 如果具有多个此类常量,请考虑创建一个单独的“常量”类来容纳它们。

符号可用于指定编译的条件。 可通过 #if 或 #elif 测试符号。 还可以使用 conditional 属性来执行条件编译。

可以定义一个符号,但不能向符号分配值。 文件中必须先出现 #define 指令,才能使用并非同时也是预处理器指令的任何指示。

还可以通过 /define 编译器选项来定义符号。 可以通过 #undef 取消定义符号。

使用 /define 或 #define 定义的符号与具有相同名称的变量不冲突。 也就是说,变量名称不应传递给预处理器指令,且符号仅能由预处理器指令评估。

使用 #define 创建的符号的作用域是在其中定义该符号的文件。

如以下示例所示,必须将 #define 指令放在文件顶部。

 
  1. #define DEBUG

  2. //#define TRACE

  3. #undef TRACE

  4. using System;

  5. public class TestDefine

  6. {

  7. static void Main()

  8. {

  9. #if (DEBUG)

  10. Console.WriteLine("Debugging is enabled.");

  11. #endif

  12. #if (TRACE)

  13. Console.WriteLine("Tracing is enabled.");

  14. #endif

  15. }

  16. }

  17. // Output:

  18. // Debugging is enabled.

在项目属性-》生成-》条件编译符号作用等同,

利用宏定义

更方便的调试代码

#define DEBUG   // C#的宏定义必须出现在所有代码之前。当前我们只让DEBUG宏有效。

代码用 #if DEBUG 包裹

#if DEBUGToolsPath = @"D:\workspace\shopstyle\tool";
#elseToolsPath = Environment.CurrentDirectory;
#endif

c#利用宏定义调试代码相关推荐

  1. MDK中利用宏定义__DATE__和__TIME__设置产品的代码固件版本

    文章目录 前言 一.__DATE__和__TIME__是什么? 二.使用步骤 1.引入库 2.参考代码 总结 前言 STM32开发中,利用宏定义的__DATE__和__TIME__设置产品的代码固件版 ...

  2. c语言 字符串数组末尾,C语言中,利用宏定义一个字符串和字符数组定义的字符串其末尾都会自动添加\0字符...

    利用宏定义一个字符串#define MYPHONE "AT+CMGS" 字符数组的方式来定义一个字符串unsigned char SMS[]="HELLO, WELCOM ...

  3. 在Excel中利用宏定义实现MD5加密和批量加密

    想试试excel表格的批量插入,在网上找了一些方法,结合方法自己总结了下! 分为四步     1.下载宏文件[md5宏]      下载宏地址:https://pan.baidu.com/s/13YG ...

  4. 提高代码逼格的利器:宏定义-从入门到放弃

    道哥的第 019 篇原创 文章目录 一.前言 二.预处理器的操作 1. 宏的生效环节:预处理 2. 条件编译 3. 平台预定义的宏 三.宏扩展 1. 最常见的宏 2. 与函数的区别 四.符号:\# 与 ...

  5. 提高代码逼格的利器:宏定义的使用

    一.前言 一直以来,我都有这样一种感觉:当我学习一个新领域的知识时,如果其中的某个知识点在刚开始接触时,我感觉比较难懂.不好理解,那么以后不论我花多长时间去研究这个知识点,心里会一直认为该知识点比较难 ...

  6. C/C++调试用的宏定义

    使用宏定义进行调试信息的输出 输出调试信息的方法 调试时打印信息有三种形式: 一是直接写打印函数 二是用ifdef把打印函数包起来,但是这样频繁写ifdef,增大了写代码的压力 三就是直接define ...

  7. [C语言]宏定义#define的使用详解

    一.宏定义定义常量 预定义符号 FILE //进行编译的源文件 LINE //文件当前的行号 DATE //文件被编译的日期 TIME //文件被编译的时间 STDC //如果编译器遵循ANSI C, ...

  8. 宏定义#define整理

    一.宏定义#define 优点:一方面可以节省程序的空间上的篇幅,另外,恰当地使用宏定义可提高程序的时间效率.代码可以写的通俗易懂.可以提高程序的清晰性.可读性,使于修改移植等. 缺点:宏定义的使用实 ...

  9. c 宏定义用法#define

    转自:https://blog.csdn.net/boring_wednesday/article/details/78756696 宏定义 语法     #define name Stuff #de ...

最新文章

  1. 关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)
  2. 如何将数据库文件.mdf导入/恢复到SQL_Server2000
  3. 生成模型和判别模型对比
  4. python判断队列是否为空_[python模块]队列queue
  5. 使系统生成50个0-9之间的随机数,将每个数字出现的次数 存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数 和出现频率。...
  6. 人脸识别的Python库
  7. 循环机换变速箱油教程_变速箱油多久换?很多老司机都可能不知道
  8. 金山词霸2006打开没有响应怎办?
  9. Centos6 安装可视化界面
  10. 基于Springboot+Mybatis+Mysql的人事考勤统计管理系统
  11. css3立方体3d旋转,纯css3实现的3D立体动态旋转立方体特效
  12. TikTok引流独立站的方式
  13. 2015Astar百度之星初赛 1001 超级赛亚ACMer
  14. jsp mysql电影网站_JSP+Servlet+C3P0+Mysql实现的YCU movies电影网站
  15. 计算机如何打开office,Win11怎么强制打开/开启Office新界面?-电脑自学网
  16. 常用软件开发模型的介绍
  17. 中华英才网简历筛选标准
  18. Java求log2(N)
  19. fms5序列号_CentOS下安装FMS5.0 互联网技术圈 互联网技术圈
  20. 申请苹果开发者账号的方法

热门文章

  1. python os.system 512_python os.system os.popen 区别
  2. pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架
  3. 如何制作计算机启动盘,一款U盘启动盘制作小工具
  4. php 初始化漏洞,这样做是不是不会引起PHP全局变量未初始化漏洞
  5. c++图形中如何判断鼠标点击在一条直线上_中考数学常考题型精讲精练系列:函数图象上点的存在性问题中的距离与面积...
  6. mysql不能删除外键吗,MySQL不能删除外键约束所需的索引
  7. 学C/C++语言,32个必备修养!
  8. java项目部署到linux上面,把我的Java项目部署到Linux系统
  9. 千本樱计算机音乐谱,【C型】我来发几个谱子 【千本樱】【权御天下】
  10. php背景图片 存放位置,CSS中背景图片位置 background-position 的使用方法