Type.GetConstructor Method (Type[])


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

Searches for a public instance constructor whose parameters match the types in the specified array.

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

public ConstructorInfo GetConstructor(
	Type[] types


Type: System.Type[]

An array of Type objects representing the number, order, and type of the parameters for the desired constructor.


An empty array of Type objects, to get a constructor that takes no parameters. Such an empty array is provided by the static field Type.EmptyTypes.

Return Value

Type: System.Reflection.ConstructorInfo

An object representing the public instance constructor whose parameters match the types in the parameter type array, if found; otherwise, null.

Exception Condition

types is null.


One of the elements in types is null.


types is multidimensional.

This method overload looks for public instance constructors and cannot be used to obtain a class initializer (.cctor). To get a class initializer, use an overload that takes BindingFlags, and specify BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). You can also get the class initializer using the TypeInitializer property.

If the requested constructor is non-public, this method returns null.


You cannot omit parameters when looking up constructors and methods. You can only omit parameters when invoking.

If the current Type represents a constructed generic type, this method returns the ConstructorInfo with the type parameters replaced by the appropriate type arguments. If the current Type represents a type parameter in the definition of a generic type or generic method, this method always returns null.

The following example obtains the type of MyClass, gets the ConstructorInfo object, and displays the constructor signature.

using System;
using System.Reflection;
using System.Security;

public class MyClass1
    public MyClass1(){}
    public MyClass1(int i){}

    public static void Main()
            Type myType = typeof(MyClass1);
            Type[] types = new Type[1];
            types[0] = typeof(int);
            // Get the constructor that takes an integer as a parameter.
            ConstructorInfo constructorInfoObj = myType.GetConstructor(types);
            if (constructorInfoObj != null)
                Console.WriteLine("The constructor of MyClass1 that takes an " + 
                    "integer as a parameter is: "); 
                Console.WriteLine("The constructor of MyClass1 that takes an integer " +
                    "as a parameter is not available."); 
        catch(Exception e)
            Console.WriteLine("Exception caught.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);

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