C#:具有继承类型的构造函数的函数
|
我们知道,您可以像这样将构造函数指向
Func<T>
:
Func<MyObject> constructor = () => new MyObject();
var newObject = constructor();
但是,有什么方法可以为您知道从MyObject继承而又不知道其确切类型的对象构造一个构造函数?
Type inheritedObjectType = obj; // Parameter
Func<MyObject> constructor = () => new MyObject(); // as inheritedObjectType
var newInheritedObject = constructor; // Should now be of the inherited type
使用Activator
或返回Object
的答案不是一个选择。
编辑:我不知道在编译时派生类型是什么类型。我只有五英镑。
没有找到相关结果
已邀请:
2 个回复
傻寺俊擒
您可以简单地按如下方式调用它:
缓存该委托时,将获得最佳性能。
谷起
如果由“ 10”描述的类型与通用约束不匹配,则“ 9”将引发异常。因此,这将在执行时而不是在编译时失败,但是我想这是在动态处理泛型时需要做出的权衡。