Что я делаю не так:
object j = 149800000;
long h = (long)j;
Нужно из object конвертировать в long, в примере выше выходит необработанное исключение типа System.InvalidCastException
Заданное приведение является недопустимым.
Если же в переменную j присвоить большое значение а-ля
object j = 111114082411778;
long h = (long)j;
то всё нормально. Также при простом присвоении переменной типа long маленького значения тоже все нормально. Я бы и использовал простой Int32, но вот значения у меня могут быть как маленькие, так и большие, и приходят они в object
Ответ
Нужно в конец добавить суффикс L, так как 149800000 компилятор воспринимает как int
object j = 149800000L;
long h = (long)j;
можно еще так
object j = 149800000;
long h = (long)(int)j;
Комментариев нет:
Отправить комментарий