Учитывая следующие классы...
public abstract class FooBase<TBar> where TBar : BarBase{}
public abstract class BarBase{}
public class Bar1 : BarBase{}
public class Foo1 : FooBase<Bar1> {}
... и следующий метод...
public TBar DoSomething<TFoo, TBar>(TFoo theFoo)
where TFoo : FooBase<TBar>
where TBar : BarBase
{
return default(TBar);
}
Почему следующая строка кода не может иметь тип возврата?
Bar1 myBar = DoSomething(new Foo1());
Вместо этого я должен указать общие типы, подобные этому...
Bar1 myBar = DoSomething<Foo1, Bar1>(new Foo1());