C# · 12月 27, 2021

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

挑战:
请创建以下类的实例(使用任何类型为T): class Foo<T> where T : Foo<T>{}

你可以使用任何你喜欢的技术;简单的“新MyClass …”,使用反射,黑客MSIL,无论如何.

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