Activator.CreateInstance<T> Method

Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static T CreateInstance<T>()

Type Parameters


The type to create.

Return Value

Type: T
A reference to the newly created object.


The type that is specified for T does not have a parameterless constructor.

The CreateInstance<T>() generic method is used by compilers to implement the instantiation of types specified by type parameters. For example, in the following generic method, the implementation of new T() (gcnew T() in C++) uses the CreateInstance<T>() generic method.

public static T Factory<T>() where T:new() 
    return new T();   

In general, there is no use for the CreateInstance<T>() method overload in application code, because the type must be known at compile time. If the type is known at compile time, standard instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++).

There are no generic overloads of the CreateInstance method that take argument lists, because the non-generic overloads already provide late-bound constructor resolution.


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions