诸如[DebuggerDisplay]之类的调试属性是否仍会编译到Release二进制文件中?

Mig*_*MoS 4 c# debugging release-management

最近了解了DebuggerDisplay属性,我发现它非常有用。但是,令我惊讶的一件事是它没有[ConditionalAttribute("DEBUG")]附加属性。有某种方法可以强制执行此操作,还是尝试尝试一个坏主意?还是因为其他原因没关系?

Mat*_*les 5

[ConditionalAttribute(“ DEBUG”))仅用于优化方法调用。

如果您确实要从构建中删除这些代码,则可以使用#ifdef,以便仅在发布模式下编译代码。

要记住的一件事是,只要拥有pdb文件,您仍然可以在发布模式下调试二进制文件。发布模式只会更快地清除变量并应用一些编译器优化