我有以下的C#類:泛型:如何從兩個類中的一個派生?
class A : Object
{
foo() {}
}
class B : Object
{
foo() {}
}
我想寫的是適用於一般的方法:
void bar<T>(T t)
{
t.foo();
}
這並不編譯抱怨,把foo()不是T的成員。我可以添加一個約束,從T派生的類之一:
void bar<T>(T t) where T : A
但我怎麼能爲它們都?
從問題中轉移得很少。 如果這是用例,它是否有意義有一個通用的方法? 爲什麼不簡單地將接口'IFoo'實現爲A和B,並將該方法聲明爲 void bar(IFoo f){ f.foo(); } – Biswanath 2010-03-18 20:58:50