以下代碼導致InvalidCastException。 object x = (short) 1;
int y = (int) x;
我知道我能投x先來個short,然後到int,儘管這不是一個選項,作爲裝箱值是不知道的類型(但它是definetly比int小)。 如何解開異常時拆開一個類型,大於盒裝類型? 編輯: 我使用dynamic型(與所有對性能的影響)
讓我首先告訴我知道MSDN on boxing and unboxing的內容,並在SO上看到關於拳擊和拆箱的帖子。我也明白爲什麼拳擊是有用的,它在高水平上有什麼作用,並曾多次與IL合作......所以請不要猶豫。 我想知道的是如何拳擊和拆箱的作品恰好,最好有證據。我的意思是: 是否運行時確實複製堆上的數據爲每個拳擊/拆箱操作或它使用像引用計數技巧? 是否與std收集堆垃圾箱裝值。垃圾收集器還是它