6. 繼承問題的一些易混淆的地方
請留意下面的代碼:
interface IC1 { }
interface IC2 : IC1 { }
class A1 : IC1 { }
class A2 : IC1, IC2 { }
class B1 : A1 { }
class B2 : A1, IC1 { }
其中,A1和A2是沒有實質的區別的,詳細請看《接口繼承的聲明問題》一文;而B1和B2卻在某些場合表現出不同的行為,為何B1和B2會有這種差異,相信現在的你應該有所了解了吧!
7. IL呢?[Updated]
噢,對了,Ninputer的問題還有個“編譯器在IL級別是用什麼手段實現這個功能的呢?”!如果你看完本文後還嫌不夠,希望更加深入了解一下IL層次上,CLR是怎樣實現接口重新映射的原理的話,我推薦你閱讀《接口映射的實現及原理》。