Type.GetConstructor Method
Gets a specific constructor of the current Type.
Overload List
Searches for a public instance constructor whose parameters match the types in the specified array.
Supported by the .NET Compact Framework.
[Visual Basic] Overloads Public Function GetConstructor(Type()) As ConstructorInfo
[C#] public ConstructorInfo GetConstructor(Type[]);
[C++] public: ConstructorInfo* GetConstructor(Type*[]);
[JScript] public function GetConstructor(Type[]) : ConstructorInfo;
Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.
Supported by the .NET Compact Framework.
[Visual Basic] Overloads Public Function GetConstructor(BindingFlags, Binder, Type(), ParameterModifier()) As ConstructorInfo
[C#] public ConstructorInfo GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[]);
[C++] public: ConstructorInfo* GetConstructor(BindingFlags, Binder*, Type[], ParameterModifier[]);
[JScript] public function GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[]) : ConstructorInfo;
Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
[Visual Basic] Overloads Public Function GetConstructor(BindingFlags, Binder, CallingConventions, Type(), ParameterModifier()) As ConstructorInfo
[C#] public ConstructorInfo GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]);
[C++] public: ConstructorInfo* GetConstructor(BindingFlags, Binder*, CallingConventions, Type[], ParameterModifier[]);
[JScript] public function GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) : ConstructorInfo;
Example
[Visual Basic, C#, C++] The following example obtains the type of MyClass1, gets the ConstructorInfo object that matches the specified binding flags, and displays the constructor signature.
[Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of GetConstructor. For other examples that might be available, see the individual overload topics.
[Visual Basic] Public Class MyClass1 Public Sub New(ByVal i As Integer) End Sub Public Shared Sub Main() Try Dim myType As Type = GetType(MyClass1) Dim types(0) As Type types(0) = GetType(Integer) ' Get the public instance constructor that takes an integer parameter. Dim constructorInfoObj As ConstructorInfo = _ myType.GetConstructor(BindingFlags.Instance Or _ BindingFlags.Public, Nothing, _ CallingConventions.HasThis, types, Nothing) If Not (constructorInfoObj Is Nothing) Then Console.WriteLine("The constructor of MyClass1 that " + _ "is a public instance method and takes an " + _ "integer as a parameter is: ") Console.WriteLine(constructorInfoObj.ToString()) Else Console.WriteLine("The constructor MyClass1 that " + _ "is a public instance method and takes an " + _ "integer as a parameter is not available.") End If Catch e As ArgumentNullException Console.WriteLine("ArgumentNullException: " + e.Message) Catch e As ArgumentException Console.WriteLine("ArgumentException: " + e.Message) Catch e As SecurityException Console.WriteLine("SecurityException: " + e.Message) Catch e As Exception Console.WriteLine("Exception: " + e.Message) End Try End Sub End Class [C#] using System; using System.Reflection; using System.Security; public class 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 public instance constructor that takes an integer parameter. ConstructorInfo constructorInfoObj = myType.GetConstructor( BindingFlags.Instance | BindingFlags.Public, null, CallingConventions.HasThis, types, null); if(constructorInfoObj != null) { Console.WriteLine("The constructor of MyClass1 that is a public " + "instance method and takes an integer as a parameter is: "); Console.WriteLine(constructorInfoObj.ToString()); } else { Console.WriteLine("The constructor of MyClass1 that is a public instance " + "method and takes an integer as a parameter is not available."); } } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException: " + e.Message); } catch(ArgumentException e) { Console.WriteLine("ArgumentException: " + e.Message); } catch(SecurityException e) { Console.WriteLine("SecurityException: " + e.Message); } catch(Exception e) { Console.WriteLine("Exception: " + e.Message); } } } [C++] #using <mscorlib.dll> using namespace System; using namespace System::Reflection; using namespace System::Security; public __gc class MyClass1 { public: MyClass1(int i) {} } ; int main() { try { Type* myType = __typeof(MyClass1); Type* types[] = new Type*[1]; types->Item[0] = __typeof(int); // Get the public instance constructor that takes an integer parameter. ConstructorInfo* constructorInfoObj = myType->GetConstructor(static_cast<BindingFlags>(BindingFlags::Instance | BindingFlags::Public), 0, CallingConventions::HasThis, types, 0); if (constructorInfoObj != 0) { Console::WriteLine(S"The constructor of MyClass1 that is a public instance method and takes an integer as a parameter is: "); Console::WriteLine(constructorInfoObj); } else { Console::WriteLine(S"The constructor of MyClass1 that is a public instance method and takes an integer as a parameter is not available."); } } catch (ArgumentNullException* e) { Console::WriteLine(S"ArgumentNullException: {0}", e->Message); } catch (ArgumentException* e) { Console::WriteLine(S"ArgumentException: {0}", e->Message); } catch (SecurityException* e) { Console::WriteLine(S"SecurityException: {0}", e->Message); } catch (Exception* e) { Console::WriteLine(S"Exception: {0}", e->Message); } }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.