|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
В переменной типа Object value могут хранится разные типы. Я проверяю другое свойство и соответственно трактую значение в нужный тип. Что то не могу понять по ошибке Код: c# 1. 2. 3.
System.InvalidCastException: 'Unable to cast object of type 'System.Int32' to type 'System.Int64'.' Причем в объекте вообще хранится 1. Какого ? С какой стати нельзя привести тип меньшего размера к большему ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 16:05 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 16:10 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Спасибо. Нашел решение подобной проблемы через класс Convert.ToInt64. Сейчас все ок. Просто ошибка очень странная :) Типа я не могу положить ваш спичечный коробок в грузовик, извините. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 16:22 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
просто присвоить, преобразование выше даёт ошибку Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 16:22 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Но вот почему выдает ошибку то ? Вот что странно ! Тут даже unchecked не нужен, какие тут вообще могут быть проблемы, что фреймворк ругается. Причем я бы еще понял, если бы как раз ошибка была при присваивании, но я то явно приведение делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 16:30 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
WaspNewCoreНо вот почему выдает ошибку то ? Вот что странно ! Тут даже unchecked не нужен, какие тут вообще могут быть проблемы, что фреймворк ругается. Причем я бы еще понял, если бы как раз ошибка была при присваивании, но я то явно приведение делаю. проверил тот же код у себя - ошибки нет, преобразовывает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 17:32 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Ролг ХупинWaspNewCoreНо вот почему выдает ошибку то ? Вот что странно ! Тут даже unchecked не нужен, какие тут вообще могут быть проблемы, что фреймворк ругается. Причем я бы еще понял, если бы как раз ошибка была при присваивании, но я то явно приведение делаю. проверил тот же код у себя - ошибки нет, преобразовывает Ошибся, та же ошибка на коде Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 17:34 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
WaspNewCoreНо вот почему выдает ошибку то ?потому что long? и long это разные типы. компилятор не может определиться, какой тип должен быть у temp1. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 19:28 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Antonariy, разве? Была бы ошибка компиляции... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 20:43 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Ролг Хупин Код: c# 1.
присваиваем val значение 1 типа Int32 (по умолчанию целые числа все int) теперь val хранит ссылку на объект в куче типа Int32 Ролг Хупин Код: c# 1.
пытаемся привести ссылку на объект в куче к типу Int64. не преобразовать, а привести к типу. это неправильно. сначала надо привести к правильному типу, потом преобразовывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 21:20 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Antonariy, нет, nullable тут вообще не причем Код: c# 1. 2.
этот код выдает ту же ошибку. Implicit-преобразование тут не канает, потому что нет implicit для object=>long ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 21:22 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariy, нет, nullable тут вообще не причем Код: c# 1. 2.
этот код выдает ту же ошибку. Implicit-преобразование тут не канает, потому что нет implicit для object=>longа вот так всё будет ок - сначала распаковываем, потом преобразовываем Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 21:23 |
|
Unable to cast object of type 'System.Int32' to type 'System.Int64'. Что за ерунда ?
|
|||
---|---|---|---|
#18+
При приведении ссылочного типа к значимому будет анбоксинг с одновременным приведением типа и без конвертации, как уже писали выше. В IL-коде в этом месте будет инструкция unbox.any [mscorlib]System.Int64. Jeffrey Richter, CLR via C#, Chapter 5Internally, here’s exactly what happens when a boxed value type instance is unboxed: 1. If the variable containing the reference to the boxed value type instance is null, a NullReferenceException is thrown. 2. If the reference doesn’t refer to an object that is a boxed instance of the desired value type, an InvalidCastException is thrown. The second item above means that the following code will not work as you might expect: Код: c# 1. 2. 3. 4. 5.
Logically, it makes sense to take the boxed Int32 that o refers to and cast it to an Int16. However, when unboxing an object, the cast must be to the exact unboxed value type—Int32 in this case. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 06:24 |
|
|
start [/forum/topic.php?fid=20&fpage=19&tid=1398915]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 390ms |
0 / 0 |