据我所知,Trace.WriteLine()
写入Trace.Listeners
集合中的所有Trace侦听器,经过一些研究,我发现debug.Writeline()
显然做了基本相同的事情。那么debug.WriteLine()
的意义何在?
这就是调试的工作方式:
- 我们首先使用
Console.WriteLine
进行调试。这将在控制台上打印所有内容。很多时候,我们可能没有控制台。此外,Console.WriteLine
(用于控制台应用程序(的目的是向用户显示有意义的消息 - 因此,焦点转移到
Debug.WriteLine
。默认情况下,Debug.WriteLine
会在Visual Studio输出窗口中打印调试信息(这可以在app.exe.config文件中进行配置(。跟踪信息是使用Debug生成的。WriteLine((,如果使用DEBUG条件#ifdef DEBUG生成。这是";关于";默认情况下处于调试模式。在发布模式中,这些调用被有效地删除,不会产生任何开销 - 然而,现在我们意识到,我们不想在生产或发布模式下打印所有内容(如堆栈跟踪等(,因此,我们在发布模式下使用
Trace.WriteLine
在调试模式下,我们可以看到Debug.WriteLine()
和Trace.WriteLine()
的输出。但是,单元测试代码同时支持Debug.WriteLine
和Trace.WriteLine
调用。