我的代码:
decimal fAnzahlAktuell = 12;
decimal fMenge = 2;
decimal fAnzahlReserviertPickpos = 0;
decimal a = ((decimal)(fAnzahlAktuell - fAnzahlReserviertPickpos)) > fMenge ? fMenge : (decimal)(fAnzahlAktuell - fAnzahlReserviertPickpos);
decimal b = (decimal)((fAnzahlAktuell - fAnzahlReserviertPickpos) > fMenge ? fMenge : (decimal)(fAnzahlAktuell - fAnzahlReserviertPickpos));
当我使用x86编译时 - > a和b都= 2
当我使用anycpu进行编译时 - > a = 2且b = 0
有人可以解释原因吗?!
编辑:我在Windows 7 x64上使用VS2010,.NET 4.0
答案 0 :(得分:2)
我自己解决了。这是VS2010中带有x64调试器的错误...
答案 1 :(得分:1)
这是调试器的一个怪癖。
您正在观察的错误报告的值只能在调试器中看到。如果您输出值,例如输出到控制台,那么您将看到它们对于所有配置都是2
。