假設我有一個繼承自2個接口(I1
和I2
)的類C
。我也有兩個版本的方法(DoStuff
),每個方法都將一個接口作爲參數。如果我打電話給DoStuff(C)
,哪個人打電話?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,如果這有什麼區別。
一個非常有趣的問題! – trampi
-1在問這個問題之前,你顯然沒有測試自己。 –
有關運行時會發生什麼的問題需要關於實際編譯的代碼! (並且我不是在談論橢圓!) – AakashM