Activator.CreateInstance<T> Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

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

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

Syntax

'Declaration
Public Shared Function CreateInstance(Of T) As T
public static T CreateInstance<T>()

Type Parameters

  • T
    The type to create.

Return Value

Type: T
A reference to the newly created object.

Exceptions

Exception Condition
MissingMethodException

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

Remarks

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 Shared Function Factory(Of T As New)() As T
    Return New T()
End Function
public static T Factory<T>() where T:new() 
{
    return new T();   
}
public:
  generic <typename T> where T:gcnew()
  static T Bar() 
  {
    return gcnew 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.

Version Information

Silverlight

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

Platforms

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