C#:无法将类型为 'System.Int64' 的对象转换为类型 'System.Int32'

标签 c# .net mono xamarin.ios

我有如下代码:

Dictionary<object, object> dict = ...
Color = (int)dict.GetValue("color");

当我将 Color 转换为 int 时,出现以下异常:

System.InvalidCastException: Unable to cast object of type 'System.Int64' to type 'System.Int32'.

我不确定为什么不能将 long 型转换为 int 型。我知道该值小于 0xFFFFFF(24 位),因为它是一种颜色。

我尝试使用 unchecked 但这也没有帮助。

最佳答案

你必须先unbox作为字典值类型的值是object

Dictionary<object, object> dict = ...
Color = (int)(long)dict.GetValue("color");

关于C#:无法将类型为 'System.Int64' 的对象转换为类型 'System.Int32',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737950/

相关文章:

c# - MVVM 绑定(bind)问题 - 另一个菜鸟问题

c# - 使用 C# 进行安卓编程

c# - System.Diagnostics.Process 实例可以被垃圾收集吗?

c# - 使用c#向word添加自定义文档属性

C# .Net 4.5 如何在代码 View 中创建表单加载按钮?

c# - NHibernate 转换问题(怀疑原因是不正确的映射)

java - 在基类构造函数中调用虚方法

.net - FileInfo.OpenText() 无法读取特殊字符üò°

c# - 使用 LINQ 比较具有相同键的不同词典中的项目

mono - 在 Ubuntu 中从 tarball 编译 MonoDevelop 4.2.2 时出错