关于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)
推荐阅读
- 过节■江苏省委省政府办公厅下发关于做好2021年元旦春节期间有关工作的通知
- |徐州市出台《关于优化创新创业生态系统 提升区域科技创新活力的实施意见》及实施细则
- 雨下|全球关于禁售燃油车只是理论上可行吗
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 智叔|很多家长还在整箱买:谈谈关于牛奶的17个真相警惕这些列入黑名单的“假牛奶”
- 关于微信小程序的思考:运营者该何去何从
- 关于人工智能虚拟人的一些问题
- 知乎上关于人生经验的介绍是否可能对青少年造成潜在危害
- 写下我关于做数据分析专员的困惑和各位的建议是
- 非物质文化遗产|市北文体中心一场关于“非遗”的盛会…