using System; using System.Reflection; class MyClass { public MyClass(int i) { Console.WriteLine("Constructing MyClass(int). "); } public MyClass(int i, int j) { Console.WriteLine("Constructing MyClass(int, int). "); } public int sum() { return 0; } public bool isBetween(int i) { return false; } public void set(int a, int b) { Console.Write("Inside set(int, int). "); } public void set(double a, double b) { Console.Write("Inside set(double, double). "); } public void show() { Console.WriteLine("Values"); } } class MainClass { public static void Main() { Type t = typeof(MyClass); int x; // Find matching constructor. ConstructorInfo[] ci = t.GetConstructors(); for(x=0; x < ci.Length; x++) { ParameterInfo[] pi = ci[x].GetParameters(); if(pi.Length == 2) break; } if(x == ci.Length) { Console.WriteLine("No matching constructor found."); return; } else Console.WriteLine("Two-parameter constructor found.\n"); // Construct the object. object[] consargs = new object[2]; consargs[0] = 10; consargs[1] = 20; object reflectOb = ci[x].Invoke(consargs); } }
Two-parameter constructor found. Constructing MyClass(int, int).