我可以在发布模式下使用Trace.WriteLine吗?
Trace.Write和Debug.Write之间的主要区别是什么?
答案 0 :(得分:16)
使用[Conditional]
属性进行条件编译。
如果在构建中定义了TRACE
标志,则对Trace
类的调用将导致写入跟踪输出。默认情况下,TRACE
在调试和释放模式下都已定义。如果没有定义标志,则不会发生任何事情。
如果定义了DEBUG
标志,则对Debug
类的调用会导致输出被写入调试流。默认情况下,DEBUG
仅在调试模式下定义。
另一个主要区别在于,通过跟踪,可以轻松自定义trace listeners并稍后决定要对跟踪输出执行的操作。它比调试输出更灵活,通常更适合登录生产应用程序。
答案 1 :(得分:6)
答案 2 :(得分:2)
区别在于发布模式。
当未定义DEBUG符号时,Debug.Write将不会编译到代码中,即在发布模式下编译。
但是,Trace.Write将在Debug模式和Release模式下编译。