不可能的递归泛型类定义?

时间:2012-03-12 07:30:18

标签: c#

挑战: 请创建以下类的实例(使用任何类型作为T):

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

你可以使用任何你喜欢的技术;简单的“新MyClass ......”,使用反射,黑客攻击MSIL等等。

1 个答案:

答案 0 :(得分:12)

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