C# 如何调用构造函数?

C# 如何调用构造函数?,c#,generics,constructor,C#,Generics,Constructor,我在使用此调用生成的自定义linq提供程序中动态创建对象的实例: object result = Activator.CreateInstance(typeof(T)); 我的T类型实现了一个抽象类,它有一个构造函数来获取另一个对象的实例(T本质上是一个包装器)。我的问题是-有没有一种方法可以显式调用非默认构造函数,这样我就可以摆脱这个问题: MyEntity entity = result as MyEntity; if(entity != null) entity.Under

我在使用此调用生成的自定义linq提供程序中动态创建对象的实例:

 object result = Activator.CreateInstance(typeof(T));
我的T类型实现了一个抽象类,它有一个构造函数来获取另一个对象的实例(T本质上是一个包装器)。我的问题是-有没有一种方法可以显式调用非默认构造函数,这样我就可以摆脱这个问题:

 MyEntity entity = result as MyEntity;
 if(entity != null)
    entity.UnderlyingEntity = e; //where e is what I am wrapping 

您可以使用变量重载,它将使用最佳匹配构造函数。

您可以使用变量重载,它将使用最佳匹配构造函数。

是的,只需在
类型
对象后提供构造函数参数,如下所示:

object result = Activator.CreateInstance(typeof(T), arg1, arg2, ...);

是的,只需在
类型
对象后提供构造函数参数,如下所示:

object result = Activator.CreateInstance(typeof(T), arg1, arg2, ...);

您可以只调用
objectresult=Activator.CreateInstance(typeof(T),e)

您可以调用
对象结果=Activator.CreateInstance(typeof(T),e)