I имеют следующие C# классы:Generics: Как получить один из двух классов?
class A : Object
{
foo() {}
}
class B : Object
{
foo() {}
}
Я хочу написать общий метод, который применяется к обоим:
void bar<T>(T t)
{
t.foo();
}
это не компилируется жалуется на Foo() не является членом T Я могу добавить ограничение для того, чтобы Т получался от одного из классов:
void bar<T>(T t) where T : A
но как я могу его использовать для обоих?
Отвлекитесь немного от вопроса. Если это прецедент, имеет ли смысл иметь общий метод? Почему бы просто не реализовать интерфейс «IFoo» как для A, так и для B и объявить метод как void bar (IFoo f) { f.foo(); } – Biswanath