【问题标题】:C#: Is it wasteful to place Debug.Writeline text in a resource file?C#:将 Debug.Writeline 文本放在资源文件中是否浪费?
【发布时间】:2011-01-10 16:27:45
【问题描述】:

我有以下内容:Debug.Writeline(Properties.Resources.DEBUG_MSG_1);

这很好用,我无法想象在调试模式下编译时它会以任何方式、形状或形式伤害我。然而,我担心虽然这是管理我的消息的一种很好且方便的方法,但是当我在 Release 中编译时,在资源文件中包含额外的无用项可能是不必要的开销。我的假设正确吗?

【问题讨论】:

  • 为什么您的调试消息实际上需要在资源中?您是否对它们进行本地化?
  • 嗯,好点子。我想我只是想找一个好地方把他们都分组。也许我会将它们作为私有常量并将它们包装在 #if DEBUG 指令中。

标签: c# debugging resources release


【解决方案1】:

WriteLine 方法具有属性

[Conditional("DEBUG")]

设置。因此,我强烈假设编译器会自动删除发布版本的函数调用。

【讨论】:

  • +1 调用被删除,但不是 OP 询问的资源字符串。
  • 但不是资源条目,这意味着所有消息最终仍会随生产版本一起发布...
  • 在“good old”Visual C++ 中,也有一个选项可以有条件地定义资源/资源符号。据我所知,这似乎不适用于 C#/.NET。
【解决方案2】:

嗯...资源嵌入到应用程序中。所以在 RELEASE 中你会有一些额外的消息,这些消息不会被使用。您拥有的越多,您的应用程序权重就越大。

但我认为真正的问题可能是有人阅读了 DEBUG 消息,而她/他不应该这样做。

【讨论】:

    猜你喜欢
    • 2012-03-20
    • 2016-07-20
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    相关资源
    最近更新 更多