我正在尝试使用三元来分配十进制类型。它不适合我。我要疯了吗?
这是我调试的屏幕截图。在我迈出之前,您可以看到一切的价值。
在我走到这里之后就是价值。它甚至不是可行的选项之一(即 1 或 2000)。
小数有一些我不知道的奇怪限制吗?当我将其分解为完整的 if/else 逻辑表示时,它可以正常工作。我唯一能猜到的是我最近安装了 .NET Framework 4.5。
更新
我已经清理了解决方案,并确保我正在按照评论中的建议在调试模式下编译的代码上运行。这些似乎都没有改变任何东西。
当我注意到我所有的单元测试仍然通过时,我开始感到好奇。经过一番调查后,我发现当我再走一步(即跨过 memberItems.Add)时,价格神奇地具有正确的价值。
.Net 是否对三元运算符进行某种延迟解析,类似于迭代器块中的 yield 命令?我以前从未注意到它,但我不知道它还能是什么。我想我也可能意外地在发布模式下编译的代码上运行。在三重检查自己之后,我犯了更愚蠢的错误。