我的代碼: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));
當我編譯使用86 - > a和b二者= 2
當我編譯使用anycpu - > A = 2和b =
燦有人解釋爲什麼?!
編輯:我使用VS2010,.NET 4.0的Windows 7 X64的
它爲Visual Studio 2012上的Any CPU vs x86提供了相同的結果。 – Habib
根據定義沒有區別 - 但這並不排除其中一個運行時發生錯誤。 – TomTom
你剛纔在調試器中看到了這個嗎?你是否在發佈模式下運行?事後你會對變量'b'做什麼?如果您將其打印到屏幕上,「b」仍然顯示爲0?您可能會看到積極優化的結果。 – Baldrick