У меня есть иерархия классов, которая выглядит следующим образом:
class Base<TElement>
{
public TElement Element { get; set; }
}
class Concrete : Base<string>
{
}
Я хотел бы написать метод, который принимает Base
подклассы:
public TConcrete DoSomething<TConcrete, TElement>()
where TConcrete : Base<TElement>
{
}
Есть ли способопределить DoSomething, не определяя TElement
?
Идеальным решением было бы, если бы компилятор мог автоматически вычислять TElement
, поэтому вызывающий код будет выглядеть следующим образом:
var item = DoSomething<Concrete>();
Я использую C # 4.0.