vs 之间有什么区别?Console.WriteLine()Debug.WriteLine()
Sam*_*der 94
Console.WriteLine在调试或发布中写入标准输出流.Debug.WriteLine写入Listeners集合中的跟踪侦听器,但仅在调试中运行时.在发布配置中编译应用程序时,Debug元素将不会编译到代码中.
至于Debug.WriteLine写在所有跟踪侦听器监听器集合,它是可能的,这可能是在多个地方输出(Visual Studio的输出窗口,控制台,日志文件的第三方应用程序,注册一个监听器(我相信DebugView中做到这一点)等).
Han*_*ant 35
Console.WriteLine()用于控制台模式程序.Visual Studio托管过程的一个很好的功能使其输出显示在Visual Studio输出窗口中,同时调试没有控制台的进程.这在调试时非常有用,但请注意,#ifdef DEBUG当您准备创建Release版本时,应该删除此代码(或用a包装).否则会给您的程序增加不必要的开销.这使得它不太适合调试跟踪.
Debug.WriteLine()如果使用DEBUG条件#defined 构建,则生成跟踪信息.默认情况下,这在Debug版本中是打开的.输出结束的位置可以在app.exe.config文件中配置.如果未覆盖此配置,.NET将自动提供DefaultTraceListener该类的实例.它将Debug.WriteLine()带有Windows OutputDebugString()API函数的文本发送到调试器.Visual Studio调试器使它出现在"输出"窗口中,就像Console.WriteLine().
一个明显的优点Debug.WriteLine()是它在Release版本中不产生任何开销,有效地消除了调用.但它不支持复合格式,你需要String.Format()它.对于调试跟踪,应该选择Debug类.
小智 17
如果您使用Console.WriteLine的目的仅用于调试,则最好使用Debug.WriteLine.
如果要向用户显示消息,可以使用Console.WriteLine.
Debug.WriteLine仅用于调试应用程序.在发布模式下,将忽略调试语句.
控制台应用程序的另一个用途是测试私有程序集.您可以简单地将DLL重新构建为控制台应用程序并从/向控制台输入/输出,而不是创建某种GUI测试工具来测试DLL的编译版本的传统方法.我发现这种技术要比花时间创建GUI测试工具更快.
| 归档时间: |
|
| 查看次数: |
42832 次 |
| 最近记录: |