关于C#泛型类构造函数的问题

因为 Foo\u0026lt;T\u0026gt; 的派生类不一定保证有 ctor(T) 这个构造函数。 IL 层面上也不支持带参数的构造函数的约束。要想调用那个构造函数的话,只能通过反射,或者借助一个 Func\u0026lt;TM\u0026gt; 间接调用……

■网友
答案其实是这样:IL上只设计了一个bit来标记无参构造函数约束,且这里编译器偷了点懒,会把无参构造函数翻译成Activator.CreateInstance
那么对于有参构造函数,你可以自己调用Activator.CreateInstance的有参重载

■网友
【关于C#泛型类构造函数的问题】 因为约束中只约定了该类型TM的基类是Foo\u0026lt;T\u0026gt;且有一个无参构造函数。
Constraints on Type Parameters (C# Programming Guide)


    推荐阅读