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