Type.GetConstructor Method (Type[])
Searches for a public instance constructor whose parameters match the types in the specified array.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- types
-
Type:
System.Type[]
An array of Type objects representing the number, order, and type of the parameters for the desired constructor.
-or-
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.ConstructorInfoAn object representing the public instance constructor whose parameters match the types in the parameter type array, if found; otherwise, null.
Implements
_Type.GetConstructor(Type[])| Exception | Condition |
|---|---|
| ArgumentNullException | types is null. -or- One of the elements in types is null. |
| ArgumentException | 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.
Note |
|---|
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() { try { 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(constructorInfoObj.ToString()); } else { 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); } } }
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
