Activator.CreateInstance<T> Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

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>()

Return Value

Type: T

A reference to the newly created object.

Type Parameters


The type to create.

Exception Condition

In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

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>() generic method in application code, because the type must be known at compile time. If the type is known at compile time, normal instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++). If the type is not known at compile time, you can call a non-generic overload of CreateInstance.

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

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top