我最近在我的開發硬件上安裝了最新版本的OSX,Xcode和Xamarin Monotouch,我無法獲得最簡單的Monogame示例以正常運行。我如何修復Monogame和Xamarin的數字溢出?
這是跳動框例子,它崩潰應用程序啓動時,就用的彩色結構的第一初始化= 255:
public byte A
{
...
set
{
this._packedValue = (this._packedValue & 0x00ffffff) | ((uint)(value << 24));
}
}
此代碼工作正常的Windows,甚至是iPhone模擬器,但是當我在iPad 1(iOS 5)或iPhone 5(iOS6)上運行它時,我得到的異常是「System.OverflowException:Number overflow。」。如果我更改代碼以不導致溢出:
set
{
var val = (uint)value;
var val2 = val << 24;
this._packedValue = (this._packedValue & 0x00ffffff) | val2;
}
這個問題消失,但同樣的問題是由R,G,和B表現出性能爲好。我的直覺是,Monogame不是寫在數字溢出的頭腦中,而且可能有無數的例子。自從編寫示例代碼後,這必定是一個'新'問題。
是否有一些編譯器開關丟失,迫使它忽略數字溢出?我正在使用Visual Studio 2012在網絡上部署,在項目屬性下我沒有看到與此相關的任何設置。
我試圖重現這一點,但我沒有任何成功。你可以用http://bugzilla.xamarin.com提交一個完整的測試項目的bug,因爲這不應該發生? –