0
我有幾種方法,其參數是一個派生類型:Func鍵與導出參數
bool Method1(ChildType1);
bool Method2(ChildType2);
隨着ChildType1
和從ParentType的ChildType2
heritating。
我希望有一個委託,它可以接受方法1或方法2,但得到的編譯錯誤:
Func<ParentType, bool> MyDelegate = Method1;
錯誤1,沒有超載的「方法一」比賽代表「Func鍵< ParentType的, 布爾>」
有沒有辦法避免這種情況?
使用委託covarianc/contravariance。請參閱https://msdn.microsoft.com/en-us/library/ms173174.aspx – Maarten
@Marteen委託在它們的* return *類型中是協變的(並且在它們的參數中是逆變的)。 OP需要協變參數,這是不可能的。 – dcastro
你爲什麼要這麼做?底層需求是什麼? – Enigmativity