gpt4 book ai didi

c# - System.Diagnostics.Trace、System.Diagnostics.Debug 和 System.Console 之间有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 17:32:36 26 4
gpt4 key购买 nike

据我了解,System.Console 默认会写入 STDOUT,但是 System.Diagnostics.TraceSystem.Diagnostics.Debug 呢? ?默认行为是什么,它们是否可以任何方式配置?

似乎不同的人(在 Internet 上)使用不同的东西,但我假设我发现的大部分内容都是错误的,因为每种东西都应该有特定的语义,对吗?如果是这样,是否有任何框架(如 ASP.NET 或 WPF)专门使用它们?

还有最后一个问题,选择使用其中哪一个的经验法则是什么?

最佳答案

DebugTrace 都写到相同的位置,即 Listeners 集合。默认情况下它被路由到 Visual Studio 的调试窗口,但是 you can put code in your app.config file在不调试时将其重定向到其他位置。

DebugTrace的区别在于Debug中的所有方法只有在DEBUG时才写出编译符号已设置(调试时默认打开,发布时默认关闭)未设置符号时,永远不会在代码中调用方法。 Trace 查找 TRACE 符号(调试和发布均默认打开)。除此之外,这两个类是相同的。事实上,如果您修改 Debug.Listeners 以添加新的监听器,它也会修改 Trace.Listeners,因为两者都指向内部静态属性 TraceInternal.Listeners

至于选择使用哪一个,您是否希望诊断信息显示在发布和 Debug模式下?使用跟踪,仅调试?使用调试。您希望它在没有附加调试器的情况下对最终用户可见吗?使用控制台或添加控制台跟踪监听器。

关于c# - System.Diagnostics.Trace、System.Diagnostics.Debug 和 System.Console 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com