以下代码导致 InvalidCastException
。
object x = (short) 1;
int y = (int) x;
我知道我可以先将 x
转换为 short
,然后再转换为 int
,尽管这不是一个选项,因为装箱值的类型未知(但它肯定小于 int
)。
当拆箱到大于装箱类型的类型时,如何解决异常?
编辑:
我通过使用 dynamic
类型解决了我的问题(具有所有性能影响)
最佳答案
您可以 only unbox an object to its exact type .
相反,您应该调用 Convert.ToInt32()
,它适用于任何数字类型。
关于c# - 拆箱到更大的值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503693/