2 つのインターフェイス (および)Cから継承するクラスがあるとします。メソッド ( ) の 2 つのバージョンもあり、それぞれがパラメーターとしてインターフェイスの 1 つを取ります。を呼び出すと、どちらが呼び出されますか?I1I2DoStuffDoStuff(C)
interface I1 { ... }
interface I2 { ... }
class C : I1, I2 { ... }
int DoStuff(I1 target) { ... }
int DoStuff(I2 target) { ... }
//What gets called here?
C target = new C()
DoStuff(target)
I2から派生する場合I1、比較的単純だと思います-I2バージョンが呼び出されます。インターフェイスが独立している場合に興味があります。
C、I1またはを編集できないとしますI2。そして、それが違いを生むなら.NET 2.0。