C# DEBUG 调试信息打印及输出详解
转载自: http://blog.csdn.net/aaaaatiger/article/details/5583301
1.debug只在[debug模式下才执行](运行按钮后面的下拉框可选)
2.断言 [Assert]
System.Diagnostics.Debug.Assert(false,"信息");
将出现一个对话框,类似下图:
3.debug可以自定义监听器
(下例将信息存入磁盘文件)
System.Diagnostics.TextWriterTraceListener TraceListener = new System.Diagnostics.TextWriterTraceListener(@"d:/debug.txt"); System.Diagnostics.Debug.Listeners.Add(TraceListener); System.Diagnostics.Debug.WriteLine(System.DateTime.Now.ToString()); Debug.WriteLine("Hello, world!"); TraceListener.Flush();
4. debug和console.write()有什么区别?
debug在运行状态时向ide的限时窗口输出(用于windows 窗体程序)
console.write用于控制台程序,使用程序在运行时可以向控制台(就是dos界面的那个)输出信息
二者同样是输入,但Debug是输出到output窗口,而Console是输出到控件台窗口,
而且Debug必须要在Debug情况下才有效,你按Ctrl+F5后会看到Console的输出,
按F5后也能看到Console的输出,还可以看到output中Debug的输出
5 条件编译 [#if DEBUG ]
首先,大小写不能写错,其次,解决方案配置设为:Debug,才会执行该语句,如果在条件里面搭配Debug.Assert等,效果甚佳。而如果要设置为Release模式,就不会执行条件语句中的内容,有时候可以通过设置!DEBUG来达到发布产品执行的代码。
示例代码:
int debugNumber = 0;#if DEBUG Console.WriteLine("调试中的debugNumber: "+debugNumber); #endif#if !DEBUG debugNumber++; Console.WriteLine("非调试中的debugNumber: "+debugNumber); #endif
在不同的调试方式下(Debug和Release),执行输出的内容是不一样的。
6 利用宏定义 [#define] [#undef DEBUG]
#define DEBUG// C#的宏定义必须出现在所有代码之前。当前我们只让DEBUG宏有效。
using System.Diagnostics; //必须包含这个包
解决方案处于 Debug 模式
#define ZHANGusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics;namespace ConsoleApp {class Program{static void Main(string[] args){ToolKit.Method1();ToolKit.Method2();ToolKit.Method3();ToolKit.Method4();}class ToolKit{[ConditionalAttribute("LI")]// Attribute名称的长记法[ConditionalAttribute("DEBUG")]public static void Method1(){ Console.WriteLine("Created By Li, Buged.11"); }[ConditionalAttribute("LI")][ConditionalAttribute("NOBUG")]public static void Method2() { Console.WriteLine("Created By Li, NoBug."); }[Conditional("ZHANG")]// Attribute名称的短记法[Conditional("DEBUG")]public static void Method3(){ Console.WriteLine("Created By Zhang, Buged.11"); }[Conditional("ZHANG")][Conditional("NOBUG")]public static void Method4(){ Console.WriteLine("Created By Zhang, NoBug."); }}} }
运行结果:
转载于:https://www.cnblogs.com/gsk99/p/4935933.html
C# DEBUG 调试信息打印及输出详解相关推荐
- substrate中打印调试信息的多种方式详解
目录 1. 获取substrate-node-template代码 2. 添加一个用于测试的pallet至依赖到pallets目录 3. log方式来输出信息 3.1 将log依赖添到cargo.to ...
- Javascript的调试利器:Firebug使用详解
copy from: http://blog.csdn.net/tianxiaode/archive/2007/09/02/1769152.aspx Javascript的调试,是开发Web应用尤其是 ...
- php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)
1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...
- js打印三角形超详解
js打印三角形超详解 j控制星星的总行数,i控制每行星星的打印个数 打印图形如下: (1) (2) //str=""用来存储星星// 理解步骤1:在一行输出6个星星如何操作,在循环 ...
- 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例
本小章讲解进程管理中的进程概览和作用,及ps命令详解,ps -ef,ps aux,ps -le,ps -l的输出详解和示例 文章目录 进程概览 什么是进程和程序 进程管理的作用 进程启动方式 僵尸进程 ...
- ThinkPHP模版引擎之变量输出详解
ThinkPHP模版引擎之变量输出详解 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下,做出一些总结,分享给大家供大家参考.具体分析如下: 我们已经知道了 ...
- MySQL show slave statusG 输出详解
MySQL show slave status\G 输出详解 db02 [(none)]>show slave status\G *************************** 1. r ...
- java使用变量输出_JAVA定义变量与输出详解
一些重要知识 一个源文件里只能有一个public类,其它类数量不限.文件名与public类名相同 java程序严格区分大小写 JAVA应用程序的执行入口是main方法固定写法:public stati ...
- Python print函数及format()格式化输出详解
今天继续给大家介绍Python相关知识,本文主要内容是Python print函数及format()格式化输出详解. 一.print()函数基本使用 print()函数是Python中用于向控制台输出 ...
最新文章
- Kali渗透测试——快速查找Metasploit的模块
- Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)
- 《数值分析(原书第2版)》—— 第0章 基 础 知 识
- 浅谈ANR及log分析ANR
- 推荐一位互联网领域的达人,可以工作、生活、写书三不误!
- python2.7多线程的批量操作远程服务器
- leetcode 257. 二叉树的所有路径(Java版)
- 【OS学习笔记】四 什么是虚拟机
- Android事件分发 笔记
- 数据通信与计算机网络第2版,数据通信与计算机网络(第2版)习题1
- Fortran 语言学习(菜鸟都可以看得懂的入门级教程)(持续更新中ing...)
- AHP权重计算方法案例
- windows系统设置保护视力方法
- 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置最好 电脑虚拟内存不足怎么解决...
- 【ChatGPT】你会是被AI抢饭碗的那类人吗?
- Linux 文件夹右下角有锁,解锁
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),计算机组成原理课程设计...
- Android热更新,Android面试题整理
- Delphi FireDAC 出现[FireDAC][DatS]-32. Variable length column [*] overflow. Value length - [*]
- React项目 antd 修改主题颜色
热门文章
- 面向对象方法为何有利于软件复用?
- 《易学Python》——1.8 总结
- 跟各种诡异 Bug 打交道 13 年后的总结
- PL/SQL 游标
- 怎样用Beyond Compare比较两个txt文件
- [Config]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value...
- ssh: connect to host 192.168.57.131 port 22: Conne
- 使用主机telnet远程管理路由器和交换机的详细过程及截图
- 人脸识别算法初次了解
- std::bind技术内幕