я тестировал следующий код в нескольких средахИмеет ли спецификация C# кастинг от ulong до int? MonoTouch дает NumberOverflow
ulong c = 10000000000000000; // Base 10
int w = (int) c; // w should be 1874919424
Результаты таковы:
VS2013 .NET 4.5 - w = 1874919424
Xamarin (mono) Android - w = 1874919424
Xamarin (mono) iOS - number overflow
Является ли это вопрос, который должен Xamarin/исправит? (например, требуется спецификация C#)
Поддерживает ли IOS/Objective C код этой кастинга? (почему это не работает?)
Как я могу обойти это без бокса или снижения производительности?
Этот метод широко используется в шифровании BouncyCastle, и я уверен, портирование это C# и вы хотите сделать, как несколько изменений по мере необходимости.
Вы используете 64 бит? – casillas
У вас есть новый тип данных в Xamarin: http://developer.xamarin.com/guides/cross-platform/macios/nativetypes/ – casillas
@casillas Я использую унифицированную библиотеку. Не уверен, что есть параметры проекта, которые мне нужно проверить (проект/рабочее пространство/симулятор). Я новичок в этом. Также имеет значение x64? Я думал, что .NET скроет это от меня. – LamonteCristo