generics在C#中 – 我怎样才能创build一个带有参数的variablestypes的实例?

我有一个generics类,在那里我想用genericstypes实例化一个对象。 我想为该types的构造函数使用参数。

我的代码:

public class GenericClass<T> where T : Some_Base_Class, new() { public static T SomeFunction(string s) { if (String.IsNullOrEmpty(s)) return new T(some_param); } } 

我得到了一个错误

 new T(some_param) 

'T':创buildvariablestypes的实例时不能提供参数

任何想法我怎么能做到这一点?

看看Activator.CreateInstance 。 例如:

 var instance = Activator.CreateInstance(typeof(T), new object[] { null, null }); 

很显然,用这个types的构造函数之一所期望的适当的值replacenull值。

如果您收到一个关于cannot convert object to type T as T cannot convert object to type T的编译器错误,那么将其包含as T

 var instance = Activator.CreateInstance(typeof(T), new object[] { null, null }) as T;