2
下面的代码(至少对我来说)的行为奇怪:为什么此转换不起作用?
int testValue = 1234;
this.ConversionTest(testValue);
private void ConversionTest(object value)
{
long val_1 = (long) (int) value; // works
long val_2 = (long) value; // InvalidCastException
}
我不明白为什么直接的(明确的)强制转换为长不起作用。 有人可以解释这种行为吗?
感谢
这是一个非常常见的问题。关于这个问题的文章在这里: http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx – 2010-09-08 15:09:01
请注意,这是许多以前的重复堆溢出问题,如这一个:http://stackoverflow.com/questions/1812172或这一个:http://stackoverflow.com/questions/2651754或这一个:http://stackoverflow.com/questions/1667169或这一个:http://stackoverflow.com/questions/1085097 – 2010-09-08 15:10:12