Mega Code Archive

 
Categories / C# / Reflection
 

Analyze methods using reflection

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Analyze methods using reflection.    using System;  using System.Reflection;    class MyClass {    int x;    int y;      public MyClass(int i, int j) {      x = i;      y = j;    }      public int sum() {      return x+y;    }      public bool isBetween(int i) {      if(x < i && i < y) return true;      else return false;    }      public void set(int a, int b) {      x = a;      y = b;    }      public void set(double a, double b) {      x = (int) a;      y = (int) b;    }      public void show() {      Console.WriteLine(" x: {0}, y: {1}", x, y);    }  }    public class ReflectDemo {    public static void Main() {      Type t = typeof(MyClass); // get a Type object representing MyClass        Console.WriteLine("Analyzing methods in " + t.Name);          Console.WriteLine();        Console.WriteLine("Methods supported: ");        MethodInfo[] mi = t.GetMethods();        // Display methods supported by MyClass.      foreach(MethodInfo m in mi) {        // Display return type and name.        Console.Write("   " + m.ReturnType.Name +                        " " + m.Name + "(");          // Display parameters.        ParameterInfo[] pi = m.GetParameters();          for(int i=0; i < pi.Length; i++) {          Console.Write(pi[i].ParameterType.Name +                        " " + pi[i].Name);          if(i+1 < pi.Length) Console.Write(", ");        }          Console.WriteLine(")");              Console.WriteLine();      }    }  }