正如我们所知,您可以像这样指向构造函数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
不是一种选择。
编辑:我不知道在编译时派生类型是什么类型。我只有一个System.Type
。