在 C# 语言中允许在程序运行时输出程序的调试信息,类似于使用 Console.WriteLine 的方式向控制台输出信息。
所谓调试信息是程序员在程序运行时需要获取的程序运行的过程,以便程序员更好地解决程序中出现的问题,这种调试也被称为是非中断调试。
输出调试信息的类保存在 System.Diagnostics 命名空间中,通常用 Debug 类或 Trace 类实现调试时输出调试信息,具体的语句如下。
Debug.WriteLine();
Trace.WriteLine();
其中,Debug.WriteLine() 是在调试模式下使用的;Trace.WriteLine 除了可以在调试模式下使用,还可以用于发布的程序中。
下面通过实例来演示 Debug 类和 Trace 类的使用。
【实例】创建一个字符串类型的数组,在数组中存入从控制台输入的值,并输出每次向数组中存入的值。
本实例使用控制台程序完成,代码如下。

class Program
{
static void Main(string[] args)
{
string[] str = new string[5];
Debug.WriteLine("开始向数组中存值:");
for(int i = 0; i < str.Length; i++)
{
str[i] = Console.ReadLine();
Debug.WriteLine("存入的第{0}个值为{1}", i, str[i]);
}
Debug.WriteLine("向数组中存值结束!");
}
}

运行该程序,在输岀界面中查看通过 Debug 类输出的信息,界面如下图所示。

从输出窗口的内容可以看出,通过 Debug 类所打印的内容全部显示在该窗口中。



使用 Trace 类也能完成同样的效果,只需将上述代码中的 Debug 类换成 Trace 类即可。

提示:Trace 类的 WriteLine 方法中的参数不支持上述代码中 Debug 类的 WriteLine 方法的参数形式,只能传递字符串。

需要注意的是当程序在 Debug 状态下执行时使用 Debug 类打印的信息才会在输出窗口中显示,在 Release 状态下执行时只有 Trace 类输出的内容才会显示在输出窗口中。



更改程序执行的状态可以在 Visual Studio 2015 的工具栏中进行选择,如下图所示。

默认情况下,在 Visual Studio 2015 中的执行方式是 Debug,如果需要更改为其他状态, 可以在其下拉列表框中选择 Release 方式,并且在一个解决方案中不同的项目可以选择不同的执行方法。
在上图中 Debug 处的下拉列表框中选择“配置管理器”选项,弹出如下图所示的对话框。

在其中通过选择“配置”栏中的选项即可为每个项目设置 Debug 形式或 Release 形式。

C# Debug和Trace:输出调试信息的更多相关文章

  1. 【OT1.0 + TP3.2】开启trace调试、输出调试信息、开启自定义菜单

    1.开启trace调试 A- 后台系统设置 show-page-trace = 1 B-config.php文件.配置 show-page-trace = true 2.输出调试信息 很奇怪,OT竟然 ...

  2. 使用OutputDebugString输出调试信息

    在编写控制台程序的时候我们经常会使用printf输出调试信息,使我们了解程序的状态,方便调试,但是当编写非控制台程序的时候这种方法就行不通了,那我们应该怎么办?上网查了一些方法,大致就如下几种 使用L ...

  3. js操作dom---创建一个域来输出调试信息

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. Win32和MFC项目如何输出调试信息到VS的调试窗口

    直接举例说明: Win32项目: #include <Windows.h> OutputDebugString(TEXT("调试信息:MyCircleImpl::~MyCircl ...

  5. shell输出调试信息

    [shell输出调试信息] 1.使用trap命令 trap命令用于捕获指定的信号并执行预定义的命令. 其基本的语法是: trap 'command' signal 其中signal是要捕获的信号,co ...

  6. Delphi中使用Dos窗口输出调试信息

    在项目文件 *.DPR (Project->View Source)  里加上{$APPTYPE   CONSOLE} 然后,在需要输出处加上 Writeln(‘your debug messa ...

  7. Qt 使用#define+qDebug()输出调试信息

    /******************************************************************************************* * Qt 使用 ...

  8. 在VC6的debug框里面输出版权信息

    在VC6的debug框里面输出版权信息,效果如下: 原理是: 新建一个批处理文档:如:"info.bat",放置到工程目录下[和dsw同级] @echo ===本程序作者是不要呵呵 ...

  9. dotnet core 输出调试信息到 DebugView 软件

    本文告诉大家如何在 dotnet core 输出调试信息到 DebugView 软件 在之前告诉小伙伴,如何在 WPF 输出调试信息到 DebugView 软件,请看文章 WPF 调试 获得追踪输出 ...

随机推荐

  1. 『无为则无心』Python基础 — 43、文件备份的实现

    目录 1.需求 2.步骤 3.代码实现 (1)接收用户输入目标文件名 (2)规划备份文件名 (3)备份文件写入数据 (4)思考 (5)完整编码 4.再来一个小练习 1.需求 用户输入当前目录下任意文件 ...

  2. Linux中date命令用法

    1.以下是服务器现在的时间,当前时间的各种表示方法,表示成自己想要的时间格式,后面的范例将会在这个时间基础之上进行演示,同时这也是熟练掌握后面各种date命令的前提,请读者注意 [root@RHEL6 ...

  3. 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)

    关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...

  4. JAVA多线程学习十六 - 同步集合类的应用

    1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操 ...

  5. httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接 (转)

    PoolingHttpClientConnectionManager是一个HttpClientConnection的连接池,可以为多线程提供并发请求服务.主要作用就是分配连接,回收连接等.同一个rou ...

  6. 自定义CALayer

    1.如何自定义Layer.     自定义CALayer的方式创建UIView的方式非常相似.      CALayer *layer = [CALayer layer];      layer.fr ...

  7. Nodejs ORM框架Sequelize(模型,关联表,事务,循环,及常见问题)

    1.建立连接 const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username ...

  8. DatabaseMetaData

    getColumns public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern ...

  9. CSS解决父级边框坍塌的问题

    1. 浮动元素后面增加空的div 首先在父级标签内添加如下<div>标签 <div id="clear"></div> 然后在CSS中对该标签进 ...

  10. 《PHP程序员面试笔试宝典》——如何回答技术性的问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的面试.笔试真题,求职者在平时的复习中会经 ...