1

我的代码:

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

在此处输入图像描述

4

2 回答 2

2

自己解决了。这是带有 x64 调试器的 VS2010 中的错误...

https://connect.microsoft.com/VisualStudio/feedback/details/655793/edit-this-entry-misreporting-of-variable-values-when-debugging-x64-code-with-the-visual-studio-2010-调试器

于 2014-04-15T15:28:59.393 回答
1

这是调试器的一个怪癖。

您观察到的误报值只能在调试器中看到。如果您将这些值输出到控制台,那么您将看到它们都2适用于所有配置。

于 2014-04-15T15:29:16.017 回答