我可能已经知道了,但我不确定,也没有看到记录.

我使用系统.诊断学.调试.在开发过程中经常使用WriteLine,以便在调试代码时跟踪变量或异常的更改.这是为了让开发和理解开发过程中发生的事情更加容易.我通常要么注释掉代码,要么在投入生产时将其删除.

我想知道如果我忘记注释代码会发生什么.例如,在开发周期中,我跟踪错误信息,这些信息可能会使用Debug将连接记录到输出窗口.写一行.这在开发过程中显然是可以的,但我想知道当我上线时,这里是否存在风险.有人能给我的实时可执行文件附加一个调试器并捕获这个输出吗?或者它只是在VisualStudio中产生输出?

那么当我们从调试切换到发布时又会怎样呢?如果我们针对发行版进行编译,编译器是否会忽略此代码?

推荐答案

Debug类中的所有成员都标记为ConditionalAttribute,因此调用站点不会被编译成发布版本.

.net相关问答推荐

在平板电脑上运行我的 Angular 13 和 .Net Api 项目时,它不会向 api 输入请求

如何将多个安装程序Bundle 到一个安装程序中?

如果只有一个 : 存在于字符串中,则提取冒号后的内容

如何在 Raspberry Pi 上托管 WASM 文件?

无法通过构建目标访问 dotnet 的环境变量

您可以为 Func 或 Action 类型的函数或子参数指定默认值吗?

IIS 发布 ASP.NET Core 应用程序而不关闭 IIS 网站

System.IO.Directory.Exists 在 LINQ 语句中失败,但在 foreach 循环中没有

StreamWriter.Flush() 和 StreamWriter.Close() 有什么区别?

在 C# 中将字节数组保存为磁盘上的文件的最有效方法是什么?

是否可以像 WebView 一样在 Windows 窗体中嵌入 Gecko 或 Webkit?

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

带有输入字段的消息框

C# - 你如何停止计时器?

如何在 WebBrowser 控件中注入 Javascript?

为什么 Roslyn 中有异步状态机类(而不是 struct )?

/langversion 的错误选项6无效;必须是 ISO-1、ISO-2、3、4、5 或默认值

如何从 HashSet 中检索实际项目?

判断任意字符串是否为有效文件名的最简单方法

连接字符串而不是使用一堆 TextBlocks