0
這當然很簡單,但是在一段時間裏讓我煩惱,所以希望在這裏得到一些詳細的解釋。我知道,當你做爲什麼GetType()在顯式地將派生類派生到基類後返回派生類?
BaseClass b = new DeriveClass();
b
的類型仍然是BaseClass
不DeriveClass
,因爲從派生類的基類隱式轉換的。事實上,這也是合法的做
BassClass b = (BaseClass)new DeriveClass();
但編譯器不需要這樣做。無論如何,我不明白的是,在我試圖撥打b.GetType()
後,它會返回DriveClass
而不是BaseClass
。
這是爲什麼?
http://stackoverflow.com/questions/5780584/will-gettype-return-the-most-derived-type-when-called-from-the -base-class – 2014-09-20 20:06:15
施放一個對象不會修改對象,它仍然是同一個對象。鑄造只是說你想以某種方式引用該對象,並驗證該對象確實可以用這種方式引用。 – RenniePet 2014-09-20 20:07:09
您應該確保您瞭解對象引用和對象之間的區別。 – usr 2014-09-20 20:14:01