Рассмотрим следующие class/interface
определения:
public abstract class Foo<TFoo> : IFoo
where TFoo: Foo<TFoo>
{
public TFoo This => (TFoo)this;
}
public interface IFoo { }
Предположим, у меня также был определен метод, в котором я хотел передать в него TFoo<>
:
public static void Test<T>() where T : IFoo { }
Is это возможно без определения класса, который снимает ограничение самоссылающегося типа?
public abstract class Foo2 : Foo<Foo2> { }
Можно ли вызвать метод Test
без несамостоятельного класса?
Test<Foo<?>>();// What goes here <?>
Test<Foo2>(); // This works but I don't want to create a Foo2 class..