开发者

how to create instance for a generic type in c#

开发者 https://www.devze.com 2022-12-22 18:42 出处:网络
I need to create an parameterless instance for a Ge开发者_如何学运维neric Class in C#. How to do this.You could add the : new() constraint:

I need to create an parameterless instance for a Ge开发者_如何学运维neric Class in C#.

How to do this.


You could add the : new() constraint:

void Foo<T>() where T : class, new() {
    T newT = new T();
    // do something shiny with newT
}

If you don't have the constraint, then Activator.CreateInstance<T> may help (minus the compile-time checking):

void Foo<T>() {
    T newT = Activator.CreateInstance<T>();
    // do something shiny with newT
}

If you mean you the type itself, then probably something like:

Type itemType = typeof(int);
IList list = (IList)Activator.CreateInstance(
         typeof(List<>).MakeGenericType(itemType));
0

精彩评论

暂无评论...
验证码 换一张
取 消