{filelink=17552}
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();
}
}
}
}