這行代碼負數結果:int.Parse在例外
int.Parse("-1");
導致出現FormatException,上面寫着「輸入字符串的不正確的格式」當我的設備上運行。在模擬器上它工作得很好。我已經用一堆設備測試過了,唯一一個按照預期工作的(即返回值爲-1的int)的是運行android 4.2.1的三星Galaxy Nexus。所有這些裝置產生一個異常:
- 谷歌Nexus 7(4.3)
- 三星S3(4.1.2)
- 三星Galaxy Tab(4.0.4)
- LG P970(2.2.2)
- HTC感覺(2.3.4)
我也試圖從Play商店中下載一個設備上的應用程序C#Shell,並進入上面的行,結果是相同的:
千萬人知道爲什麼會出現這種情況,還是可以做些什麼來解決這個問題?
更新:
我們正在調查這個問題的原因是因爲我們的應用程序請求從我們的服務器一個JSON,它包含了一堆負數。然後,我們使用ServiceStack來解析JSON,導致所有負數變爲0. ServiceStack無法設置FormatSpecifier。
int.Parse("-1", CultureInfo.InvariantCulture)
似乎按預期在所有設備上工作,無論他們使用何種語言,但int.Parse("-1", new CultureInfo("sv-SE"))
不會。
我覺得這有點奇怪,因爲int.Parse("-1", new CultureInfo("sv-SE"))
適用於其他我們沒有使用xamarin或mono的平臺。
並提供FormatSpecifier變化行爲?我會向Xamarin提交一個錯誤 – Jason