Classe genérica que herda seu tipo genérico [duplicado]
Duplicatas possíveis:
Por que os C # genéricos não podem derivar de um dos parâmetros de tipo genérico como nos modelos C +
No C # 4.0, é possível derivar uma classe de um parâmetro de tipo genéric
Estou tentando criar uma classe genérica que herda de seu tipo genérico (em 1.Attempt). Parece que é impossível. Mas, em outra tentativa, devo lançar o objeto. Alguma solução de design para esse problema?
// #1 Attempt
public interface IFoo { }
public class Generic<T> : T { }
public void play ()
{
IFoo genfoo = new Generic<IFoo> ();
}
.
// #2 Attempt. Castable solution
public interface IAnything { }
public interface IFoo2 : IAnything { }
public class Generic2<T> : IAnything { }
public void play2 ()
{
IFoo2 genFoo = (IFoo2) new Generic2<IFoo2> ();
}