我有以下的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