2012-03-12 8 views
9

Desafío: Por favor, cree una instancia de la clase siguiente (utilizando cualquier tipo como T):¿Definición de clase genérica recursiva imposible?

class Foo<T> 
    where T : Foo<T> 
{ 
} 

Usted puede utilizar cualquier técnica que desee; llana "nueva MyClass ...", usando reflexión, hackear MSIL, lo que sea.

+1

Dar una idea de lo que quiere lograr puede ayudar a las personas a dar mejores respuestas alternativas. –

+1

posible duplicado de [Tipos genéricos recursivos] (http://stackoverflow.com/questions/647533/recursive-generic-types) – Amber

+3

posible ¿Tarea pregunta? – Carsten

Respuesta

12
static class Program { 
    static void Main() { 
     Foo<Bar> foo = new Foo<Bar>(); 
    } 
} 
class Foo<T> where T : Foo<T> {} 
class Bar : Foo<Bar> {} 
+0

Perfecto ........ –

+3

O simplemente 'nuevo Bar()'. –

+0

Haha cool! De hecho, ¡no pensé que esto fuera posible! Jeje. Estoy corregido. ¡Muy bueno de verdad! :) –

Cuestiones relacionadas