using System; using System.Reflection; namespace Reflection { class MaClasse { int x; int y; public MaClasse(int i, int j) { x = i; y = j; } public int somme() { return x + y; } public bool estEntre(int i) { if (x < i && i < y) return true; else return false; } public void modifier(int a, int b) { x = a; y = b; } public void modifier(double a, double b) { x = (int)a; y = (int)b; } public void afficher() { Console.WriteLine(" x: {0}, y: {1}", x, y); } } public class UtilisationReflection { public static void Main() { // Obtenir le type d'objet qui représente la classe 'MaClasse' Type t = typeof(MaClasse); Console.WriteLine("Analyse de méthode de " + t.Name.ToUpper()); Console.WriteLine(); Console.WriteLine("Methodes utilisées: "); MethodInfo[] mi = t.GetMethods(); // Afficher les méthodes utilisées dans 'MaClasse'. foreach (MethodInfo m in mi) { // Afficher les noms et les types de retour. Console.Write(" " + m.ReturnType.Name + " " + m.Name + "("); // Afficher les paramètres des méthodes. 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(); } } } } |
0