Export (0) Print
Expand All

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

T

The type to create.

Return Value

Type: T
A reference to the newly created object.

ExceptionCondition
MissingMethodException
NoteNote

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.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft