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;