【问题标题】:Why does a const int change? [closed]为什么 const int 会改变? [关闭]
【发布时间】:2019-12-05 10:39:59
【问题描述】:

我的代码错误和调试清楚地显示了 const int 的错误值。您可以在下面看到我没有修改 const 变量(无论如何我都不能)。 如果我在代码执行的早期断点,则 const 变量会正确设置为 59。在某些地方,它显然只是减 1。

我……我什至不知道从哪里开始寻找。这种事情根本不应该发生,对吧?

【问题讨论】:

  • 您好,我认为您的链接不起作用,您可以在编辑器中查看预览是否有效,我已经为您编辑了
  • @JamesGill 链接一直对我有用,但我还是批准了您的编辑。
  • 让它成为一个属性,并在setter中设置一个断点,这样你就可以看到发生了什么
  • 请张贴代码而不是截图!
  • 我投了反对票,因为将代码作为屏幕截图发布会使有类似情况的人更难找到问题,并且屏幕阅读器的用户也很难访问。

标签: c# visual-studio unity3d debugging constants


【解决方案1】:

此代码可能存在于您的主应用程序编译的类库中。

您正在使用最新的代码进行调试,但const 的重点在于它嵌入在调用站点中。所以 调用者 仍然具有旧的 2018 - 1960 = 58 值。如果您声称调试器有时会向您显示新的 59 值,那么它必须在类库本身中,它是针对自身编译的,因此保留了新值。

不是 const 改变,而是它没有改变,因此得名。重新编译调用应用程序。

另见Constant value not changing when recompiling referenced assembly

【讨论】:

    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    相关资源
    最近更新 更多