У меня есть код следующим образом:C#: Невозможно привести объект типа «System.Int64» к типу «System.Int32»
Dictionary<object, object> dict = ...
Color = (int)dict.GetValue("color");
Когда я преобразовать цвет к междунар, я получаю следующее исключение :
System.InvalidCastException: Невозможно привести объект типа 'System.Int64' к типу 'System.Int32'.
Я не уверен, почему я не могу просто бросить от длинного до целого. Я знаю, что значение меньше 0xFFFFFF
(24 бит), так как это цвет.
Я пробовал использовать unchecked
, но это тоже не помогло.
Ошибка в том, что ошибка, хотя она немного запутанна, потому что '(x) expr' является либо * cast *, либо * преобразованием * в зависимости от типа выражения. Корректировка будет '(int) (long) dict.GetValue (" color ")', которая соответствует '(преобразованию) ((cast) obj)'. – user2864740