2 つのインターフェイス (および)C
から継承するクラスがあるとします。メソッド ( ) の 2 つのバージョンもあり、それぞれがパラメーターとしてインターフェイスの 1 つを取ります。を呼び出すと、どちらが呼び出されますか?I1
I2
DoStuff
DoStuff(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。