科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C#程序中Bug的快速修复方法

C#程序中Bug的快速修复方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将为大家介绍一下如何对C#程序中的Bug进行快速的修复。.NET Framework中包含许多工具可以用来更快、更容易地编写正确的程序。

作者:佚名 来源:论坛整理 2007年11月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
以下是引用片段:
public bool ProcessIterations (int
  numIters)
  {
  WriteLineIf
  (myClassSwitch.TraceInfo,
  "Entering ProcessIterations",
  "CallTrace");
  ImOK ();
  Debug.Assert (numIters > 0,
  "ProcessIterations.",
  "Iterations must be more than 0");}

  我更喜欢用WriteLineIf(),它可以打印出错误消息以及错误种类。第一个参数包含一个用于调试开关的值,可以让你控制打印什么级别的输出。

  System.Diagnostics.Trace 的运用同Debug的用法完全一样。 不同的地方是,Debug只编译到Debug版本中,而Trace语句编译到Debug和Release版本中。因此,运用Trace语句应更谨慎。将Trace语句用到可以在编程实战中帮你发现bugs或捕获使用特征的代码中。

  为什么用这种方法? 运用这些方法可以让你知道代码执行的顺序。这有助于你确定在程序出错前有何动作(actions)。

  动态地控制输出

  这些新的.NET Framework类的最大的好处是通过编辑一个配置文件,你可以改变任何跟踪开关(trace switch) 的级别。在应用程序目录中建一个XML文件,该文件的名字与你的程序的名字相同,扩展名为“.config”。例如,如果你的程序是myApp.exe,就建一个myApp.exe.config。你可以用这个文件来设置你的跟踪开关的值。比如下面的文件:

以下是引用片段:
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<switches>
<add name="MyClassSwitch" 
value="4" />
</switches>
</system.diagnostics>
</configuration>

  该文件把MyClassSwitch的值设置为4,符合“Info”的设置。仅通过编辑这个config文件,你就可以改变你的程序中任何开关的级别。

  为什么用这种方法?通过运用多个开关和创建适当的config文件,你可以改变记录输出,集中精力到你关心的那些元素上。

  设置你的listeners

  .NET Framework有一个代表接收Debug、Assert和Trace输出的对象的Listeners集合。默认情况下,你的应用程序有一个单一的DefaultTraceListener。这个listener忽略Debug和Trace输出,显示一个Assert消息的对话框。你可以添加项目到这个集合,或从这个集合中删除项目。已为你创建好的两项是TextWriterTraceListener和EventLogTraceListener。TextWriterTraceListener把消息写到一个流(stream)中,EventLogTraceListener把消息写到一个EventLog中。EventLog可以让你把你的程序的调试和跟踪消息写到系统事件日志记录中。

  我喜欢为所有程序建一个调试日志文件:

以下是引用片段:
static void Main ()
  {
  Debug.Listeners.Add (
  New TextWriteTraceListener
  ("MyLog.log");
  // etc.

  为什么用这个方法? 该技巧可以让你控制在哪里用调试和跟踪语句。

  在你发现bugs时,用这些技巧.

  坦白地说,在开始写代码时,没有人用所有这些技巧。实际上,当我们努力想发现那些重大bugs的原因时我们通常添加这些语句。在你陷入那种困境时,尝试以下方法:

  1. 当你创建类时,通常为每个类建一个跟踪开关。

  2. 通常为每个类建一个验证函数。

  3. 当你要诊断错误的行为时,添加其它的跟踪和调试语句。确信把这些变化保留在代码中。我发现的最常见的错误之一就是:当程序员想找到bugs时,他们添加许多跟踪和调试语句来发现错误。然后,一旦他们找到了他们查找的错误,他们就把这些语句删掉。

  这些工具会帮你发现并修理bugs,就看你用不用它们了。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章