x86 / anycpu - 铸造的差异?

时间:2014-04-15 14:35:24

标签: c# .net casting x86 anycpu

我的代码:

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

enter image description here

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

这是调试器的一个怪癖。

您正在观察的错误报告的值只能在调试器中看到。如果您输出值,例如输出到控制台,那么您将看到它们对于所有配置都是2

相关问题