转载自: 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 调试信息打印及输出详解相关推荐

  1. substrate中打印调试信息的多种方式详解

    目录 1. 获取substrate-node-template代码 2. 添加一个用于测试的pallet至依赖到pallets目录 3. log方式来输出信息 3.1 将log依赖添到cargo.to ...

  2. Javascript的调试利器:Firebug使用详解

    copy from: http://blog.csdn.net/tianxiaode/archive/2007/09/02/1769152.aspx Javascript的调试,是开发Web应用尤其是 ...

  3. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

    1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...

  4. js打印三角形超详解

    js打印三角形超详解 j控制星星的总行数,i控制每行星星的打印个数 打印图形如下: (1) (2) //str=""用来存储星星// 理解步骤1:在一行输出6个星星如何操作,在循环 ...

  5. 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例

    本小章讲解进程管理中的进程概览和作用,及ps命令详解,ps -ef,ps aux,ps -le,ps -l的输出详解和示例 文章目录 进程概览 什么是进程和程序 进程管理的作用 进程启动方式 僵尸进程 ...

  6. ThinkPHP模版引擎之变量输出详解

    ThinkPHP模版引擎之变量输出详解 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下,做出一些总结,分享给大家供大家参考.具体分析如下: 我们已经知道了 ...

  7. MySQL show slave statusG 输出详解

    MySQL show slave status\G 输出详解 db02 [(none)]>show slave status\G *************************** 1. r ...

  8. java使用变量输出_JAVA定义变量与输出详解

    一些重要知识 一个源文件里只能有一个public类,其它类数量不限.文件名与public类名相同 java程序严格区分大小写 JAVA应用程序的执行入口是main方法固定写法:public stati ...

  9. Python print函数及format()格式化输出详解

    今天继续给大家介绍Python相关知识,本文主要内容是Python print函数及format()格式化输出详解. 一.print()函数基本使用 print()函数是Python中用于向控制台输出 ...

最新文章

  1. Kali渗透测试——快速查找Metasploit的模块
  2. Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)
  3. 《数值分析(原书第2版)》—— 第0章 基 础 知 识
  4. 浅谈ANR及log分析ANR
  5. 推荐一位互联网领域的达人,可以工作、生活、写书三不误!
  6. python2.7多线程的批量操作远程服务器
  7. leetcode 257. 二叉树的所有路径(Java版)
  8. 【OS学习笔记】四 什么是虚拟机
  9. Android事件分发 笔记
  10. 数据通信与计算机网络第2版,数据通信与计算机网络(第2版)习题1
  11. Fortran 语言学习(菜鸟都可以看得懂的入门级教程)(持续更新中ing...)
  12. AHP权重计算方法案例
  13. windows系统设置保护视力方法
  14. 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置最好 电脑虚拟内存不足怎么解决...
  15. 【ChatGPT】你会是被AI抢饭碗的那类人吗?
  16. Linux 文件夹右下角有锁,解锁
  17. 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),计算机组成原理课程设计...
  18. Android热更新,Android面试题整理
  19. Delphi FireDAC 出现[FireDAC][DatS]-32. Variable length column [*] overflow. Value length - [*]
  20. React项目 antd 修改主题颜色

热门文章

  1. 面向对象方法为何有利于软件复用?
  2. 《易学Python》——1.8 总结
  3. 跟各种诡异 Bug 打交道 13 年后的总结
  4. PL/SQL 游标
  5. 怎样用Beyond Compare比较两个txt文件
  6. [Config]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value...
  7. ssh: connect to host 192.168.57.131 port 22: Conne
  8. 使用主机telnet远程管理路由器和交换机的详细过程及截图
  9. 人脸识别算法初次了解
  10. std::bind技术内幕