c#利用宏定义调试代码
#define
使用 #define
来定义符号。 将符号用作传递给 #if 指令的表达式时,该表达式的计算结果为 true
,如以下示例所示:
#define DEBUG
说明
#define
指令不能用于声明常量值,常量定义例:public const int value = 213;
C# 中的常量最好定义为类或结构的静态成员。 如果具有多个此类常量,请考虑创建一个单独的“常量”类来容纳它们。
符号可用于指定编译的条件。 可通过 #if 或 #elif 测试符号。 还可以使用 conditional
属性来执行条件编译。
可以定义一个符号,但不能向符号分配值。 文件中必须先出现 #define
指令,才能使用并非同时也是预处理器指令的任何指示。
还可以通过 /define 编译器选项来定义符号。 可以通过 #undef 取消定义符号。
使用 /define
或 #define
定义的符号与具有相同名称的变量不冲突。 也就是说,变量名称不应传递给预处理器指令,且符号仅能由预处理器指令评估。
使用 #define
创建的符号的作用域是在其中定义该符号的文件。
如以下示例所示,必须将 #define
指令放在文件顶部。
-
#define DEBUG
-
//#define TRACE
-
#undef TRACE
-
using System;
-
public class TestDefine
-
{
-
static void Main()
-
{
-
#if (DEBUG)
-
Console.WriteLine("Debugging is enabled.");
-
#endif
-
#if (TRACE)
-
Console.WriteLine("Tracing is enabled.");
-
#endif
-
}
-
}
-
// Output:
-
// Debugging is enabled.
在项目属性-》生成-》条件编译符号作用等同,
利用宏定义
更方便的调试代码
#define DEBUG // C#的宏定义必须出现在所有代码之前。当前我们只让DEBUG宏有效。
代码用 #if DEBUG 包裹
#if DEBUG
ToolsPath = @"D:\workspace\shopstyle\tool";
#else
ToolsPath = Environment.CurrentDirectory;
#endif
相关文章
- C# TTS 文字和英文
- C# SerialPort的简单使用
- Unity3D热更新全书-脚本(三) C#LightEvil语法与调试
- [C#] c# 验证手机号码 最新的17手机号
- C#.NET常见问题(FAQ)-如何声明list的多维数组
- C#.NET常见问题(FAQ)-程序如何单步调试和设置断点
- C#中string.format用法详解
- RPC学习--C#使用Thrift简介,C#客户端和Java服务端相互交互
- C# 正则表达式大全
- c# 多线程传值注意的地方
- C# Winform WCF 调试服务端的程序(三种方法)
- C# WinForm多线程开发(一) Thread类库
- C# WinForm多线程开发(一) Thread类库
- paip.截取字符串byLastDot方法总结uapi python java php c# 总结
- oracle 存储过程定义及调试,并终于被C# 调用 代码
- C#开发的OpenRA的OpenGL创建纹理流程
- CSharp(C#)语言_高级篇(枚举器和迭代器)【要认真哟o(* ̄▽ ̄*)ブ】
- C# MessageBox 用法大全(转)
- bicabo C#多线程详解(三)
- [C#]c#中数据的同步加锁机制 的几种方法