gpt4 book ai didi

.NET 编译器——调试与发布

转载 作者:行者123 更新时间:2023-12-03 13:29:53 30 4
gpt4 key购买 nike

多年来,我一直在 VB.NET 中使用 DEBUG 编译器常量将消息写入控制台。我也一直在以类似的方式使用 System.Diagnostics.Debug.Write。我一直认为,当 RELEASE 用作构建选项时,编译器会忽略所有这些语句,从而将您的生产代码从调试语句的开销中解放出来。最近在使用 Silverlight 2 Beta 2 时,我注意到 Visual Studio 实际上附加到了我从公共(public)网站上运行的 RELEASE 版本,并显示了我认为甚至没有编译的 DEBUG 语句!现在,我的第一个倾向是假设我的环境有问题,但我也想问任何对 System.Diagnostics.Debug 和 DEBUG 构建选项有深入了解的人,我在这里可能会误解什么。

最佳答案

首选方法是实际使用条件属性来包装调试调用,而不是使用编译器指令。 #ifs 可能会变得棘手,并可能导致奇怪的构建问题。

使用条件属性的示例如下(在 C# 中,但也适用于 VB.NET):

[ Conditional("Debug") ]
private void WriteDebug(string debugString)
{
// do stuff
}

当您在没有设置 DEBUG 标志的情况下进行编译时,任何对 WriteDebug 的调用都将被删除,因为假设发生在 Debug.Write() 中。

关于.NET 编译器——调试与发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894/

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