2

以下代码导致InvalidCastException.

  object x = (short) 1;
  int y = (int) x;

我知道我可以x先转换为 ashort然后转换为 an int,尽管这不是一个选项,因为装箱值的类型是未知的(但它肯定小于 an int)。

取消装箱到大于装箱类型的类型时,如何解决异常?

编辑: 我通过使用dynamic类型解决了我的问题(具有所有性能影响)

4

1 回答 1

8

只能将对象拆箱为其确切类型

相反,您应该调用Convert.ToInt32(),它适用于任何数字类型。

于 2012-11-21T23:27:20.200 回答