为了账号安全,请及时绑定邮箱和手机立即绑定

#if DEBUG vs.条件(“DEBUG”)

#if DEBUG vs.条件(“DEBUG”)

C#
慕码人8056858 2019-07-25 15:21:05
#if DEBUG vs.条件(“DEBUG”)在大型项目中使用哪个更好,为什么更好:#if DEBUG    public void SetPrivateValue(int value)    { ... }#endif要么[System.Diagnostics.Conditional("DEBUG")]public void SetPrivateValue(int value){ ... }
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

嗯,值得注意的是,它们并不意味着完全相同。

如果未定义DEBUG符号,则在第一种情况下SetPrivateValue将不会调用自身...而在第二种情况下它将存在,但是在没有DEBUG符号的情况下编译的任何调用者将省略这些调用。

如果代码及其所有来电号码在同一装配这种差异是不太重要的-但它意味着,在第一种情况下,你需要有#if DEBUG各地的调用代码。

就个人而言,我建议采用第二种方法 - 但你确实需要保持它们之间的区别。


查看完整回答
反对 回复 2019-07-25
?
慕容3067478

TA贡献1773条经验 获得超3个赞

我肯定会有很多人不同意我的看法,但是花了很多时间作为一个不断听到的“但它能在我的机器上运行!”,我认为你应该从不使用它们。如果您确实需要一些测试和调试,请找出一种方法,使该可测试性与实际生产代码分开。

在单元测试中使用模拟进行抽象的场景,为要测试的一个场景制作一个关闭版本的东西,但是不要将调试测试放入为测试和编写用于生产版本的二进制文件的代码中。这些调试测试只是隐藏了开发人员可能出现的错误,因此在此过程的后期才能找到它们。


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 1222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信