- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用三进制来分配十进制类型。这对我不起作用。我要疯了吗?
这是我调试的屏幕截图。在我迈出第一步之前,你可以看到一切的值(value)。
在我走到这里之后就是值(value)。它甚至不是可行的选项之一(即 1 或 2000)。
是否有一些我不知道的关于小数的奇怪限制?当我将它分解成完整的 if/else 逻辑表示时,它工作正常。我唯一能猜到的是我最近安装了 .NET Framework 4.5。
更新
我已经清理了解决方案并确保我正在按照评论中的建议在 Debug模式下编译的代码上运行。这些似乎都没有改变任何东西。
当我注意到我所有的单元测试仍然通过时,我开始感到好奇。经过更多的调查后,我发现当我再踩一次(即踩过 memberItems.Add)时,价格神奇地具有正确的值(value)。
.Net 是否对三元运算符进行某种延迟解析,类似于迭代器 block 中的 yield 命令?我以前从未注意到它,但我不知道它还能是什么。我想我也可能仍然意外地在以 Release模式编译的代码上运行。在对自己进行三重检查后,我犯了更愚蠢的错误。
最佳答案
无法从屏幕截图诊断代码,所以只能猜测。
您不能总是完全依赖 watch 表达式告诉您的内容。第一种可能的故障模式是调试优化过的代码。像 price 这样的局部变量通常会被抖动优化器优化为存储在 cpu 寄存器而不是堆栈中。 watch 表达式将显示堆栈位置值,而不是 cpu 寄存器值。 0 是一个常见的结果。对此唯一真正的防御是仅调试由调试配置构建的代码。
第二种失败模式是监视表达式的求值方式。当 CLR 检测到附加的调试器时,它会启动一个专用线程。然后,调试器可以使用该线程来计算监视表达式。如果变量具有任何线程亲和性,这可能会出错。常见情况是 [ThreadStatic] 变量或 COM 对象的属性。
关于c# - 十进制三进制不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12074524/
需要帮助将这些给定的数字打印成星号,但我是编程新手;我该怎么做? #include int main(void) { int a[5]={20,1,5,15,12}; int i=0
使用 Delphi XE 2 我试图确定缩放方向以将缩放效果应用于图像(TImage),但没有找到执行此操作的函数,并且图像的 OnGesture 事件中的 EventInfo 属性没有此信息. 我见
我不知道制服在内存中是如何表示的。 制服似乎会占用宝贵的寄存器空间,但它们最终会传入/通过/传出到全局内存中,对吗? 制服不用时情况会发生变化吗?编译器可以将它们优化掉吗?--在这种情况下,我已经将无
我正在尝试在名为“timeclock”的模型上记录“time_in”和“time_out”记录。这是我想做但无法开始工作的事情! 检查最后一个时钟条目,看看它是否同时填充了“time_in”和“tim
我想听听您如何解决这种编程任务!?每种类型(OPER = 1 类型)对应一种特定的信息。 这只是大约 10 个具有相同结构的规范之一。首选创建这些“转换器”(协议(protocol))的通用方法。 最
我正在使用 Rest API(NodeJS、Express)和 PostgreSQL 制作 React-Native 应用。 在我的本地机器上托管时一切正常。当 API 托管在我的机器上并且 Post
我是一名优秀的程序员,十分优秀!