C#如何使用 Debug 和 Trace 类

阅读: 评论:0

2024年1月28日发(作者:)

C#如何使用 Debug 和 Trace 类

C#如何使用Debug和Trace类本文介绍如何使用Debug和Trace类。mework中提供了这两个类。在应用程序开发期间或部署到产品后,可以使用这两个类提供有关应用程序性能的信息。这两个类只是.NETFramework中所提供配置功能的一部分。要求下面的列表概括了推荐的硬件、软件、网络结构以及所需的ServicePack:•MicrosoftWindows2000或MicrosoftWindowsXP•MicrosoftVisualC#.NET本文还假定您熟悉程序调试。方法说明在使用Debug类创建一个示例一节中介绍的步骤演示了如何创建使用Debug类以提供有关程序执行信息的控制台应用程序。当程序运行时,您可以使用Debug类的方法来生成消息,以帮助您监视程序执行顺序、检测故障或提供性能度量信息。默认情况下,Debug类产生的消息显示在VisualStudio集成开发环境(IDE)的“输出”窗口中。该代码示例使用WriteLine方法生成后面带有行结束符的消息。当您使用此方法生成消息时,每条消息在“输出”窗口中均显示为单独的一行。如果使用Debug类的Assert方法,那么只有在指定条件计算为false时,“输出”窗口才显示消息。该消息还在一个模式对话框中向用户显示。该对话框包括消息、项目名和语句编号。该对话框还包括下列三个命令按钮:•终止:应用程序停止运行。•重试:应用程序进入调试模式。•忽略:应用程序继续。用户必须先单击这些按钮中的一个,然后应用程序才可以继续。

您还可以指示从Debug类向“输出”窗口以外的目标进行输出。Debug类有一个名为Listeners的集合,该集合包括一些Listener对象。每个Listener对象都监视Debug输出并使输出指向指定的目标。Listener集合中的每个Listener都接收Debug类生成的任何输出。请使用TextWriterTraceListener类定义Listener对象。可以通过TextWriterTraceListener类的构造函数为该类指定目标。一些可能的输出目标包括:•使用属性指定“控制台”窗口作为输出目标。•使用Text("")语句指定文本文件(.txt)作为输出目标。创建TextWriterTraceListener对象后,必须将该对象添加到ers集合才可接收调试输出。usingSystem;c;;;stics;namespaceDebugAndTrace{classProgram{staticvoidMain(string[]args){

stringsProdName="Widget";intiUnitQty=100;doubledUnitCost=1.03;/*将类生成的消息指定为WriteLine方法的第一个输入参数。按CTRL+ALT+O组合键以确保“输出”窗口可见。*/ine("DebugInformation-ProductStarting");/*为了清晰易读,请使用Indent方法在“输出”窗口中缩进后面的消息*/();/*要显示所选变量的内容,请使用WriteLine方法,如下所示:*/ine("Theproductnameis"+sProdName);ine("Theavailableunitsonhandare"+ng());ine("Theperunitcostis"+ng());/*您还可以使用WriteLine方法显示现有对象的名称空间和类名称。例如,下面的代码在“输出”窗口中显示*/umentoxml=ument();ine(oxml);/*要整理输出,可以包括一个类别作为WriteLine方法的第二个可选的输入参数。*如果您指定一个类别,则“输出”窗口消息的格式为“类别:消息”。*例如,以下代码的第一行在“输出”窗口中显示“Field:TheproductnameisWidget”:*/ine("Theproductnameis"+sProdName,"Field");ine("Theunitsonhandare"+iUnitQty,"Field");ine("Theperunitcostis"+ng(),"Field");ine("TotalCostis"+(iUnitQty*dUnitCost),"Calc");/*仅在使用Debug类的WriteLineIf方法将指定条件计算为true时,“输出”窗口才可以显示消息。*将要计算的条件是WriteLineIf方法的第一个输入参数。WriteLineIf的第二个参数是仅在第一个参数的条件计算为真时才显示的消息。*/ineIf(iUnitQty>50,"ThismessageWILLappear");ineIf(iUnitQty<50,"ThismessagewillNOTappear");/*使用Debug类的Assert方法,使“输出”窗口仅在指定条件计算为false时才显示消息:*/(dUnitCost>1,"MessagewillNOTappear");(dUnitCost<1,"MessagewillappearsincedUnitcost<1isfalse");/*为“控制台”窗口(tr1)和名为(tr2)的文本文件创建TextWriterTraceListener对象,然后将每个对象添加到DebugListeners集合中:*/

TextWriterTraceListenertr1=newTextWriterTraceListener();(tr1);TextWriterTraceListenertr2=newTextWriterTraceListener(Text(""));(tr2);ine("Theproductnameis"+sProdName);ine("Theavailableunitsonhandare"+iUnitQty);ine("Theperunitcostis"+dUnitCost);/*为了清晰易读,请使用Unindent方法去除Debug类为后续消息生成的缩进。当您将Indent和Unindent两种方法一起使用时,读取器可以将输出分成组。*/nt();ine("DebugInformation-ProductEnding");/*为了确保每个Listener对象收到它的所有输出,请为Debug类缓冲区调用Flush方法:*/();/*使用Trace类您还可以使用Trace类生成监视应用程序执行的消息。Trace和Debug类共享大多数相同的方法来生成输出。*///ine("TraceInformation-ProductStarting");//();//ine("Theproductnameis"+sProdName);//ine("Theproductnameis"+sProdName,"Field");//ineIf(iUnitQty>50,"ThismessageWILLappear");//(dUnitCost>1,"MessagewillNOTappear");//nt();//ine("TraceInformation-ProductEnding");//();ne();}}}输出窗口为:DebugInformation-ProductStartingTheprumentField:TheproductnameisWidgetField:Theunitsonhandare100

Field:Theperunitcostis1.03Calc:TotalCostis103ThismessageWILLappear“”(托管):已加载“C:WINDOWSassemblyGAC_ces2.0.0.0_zh-CHS_”----调试断言失败--------断言短消息----MessagewillappearsincedUnitcost<1isfalse----断言长消息----(String[]args)D:(50)atAppDomain._nExecuteAssembly(Assemblyassembly,String[]args)eAssembly(StringassemblyFile,EvidenceassemblySecurity,String[]args)rsAssembly()Start_Context(Objectstate)(ExecutionContextexecutionContext,ContextCallbackcallback,Objectstate)Start()TheproductnameisWidgetTheavailableunitsonhandare100Theperunitcostis1.03DebugInformation-ProductEnding其截图是:

C#如何使用 Debug 和 Trace 类

本文发布于:2024-01-28 23:11:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645466310973.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   方法   消息   使用   显示   生成   应用程序   对象
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23