Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Analyse des méthodes à l’aide de reflection

Charger,une,Assemblée,avec,un,nom
{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 &#038;& 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();
            }
        }
    }
 
}

No comments yet.

Leave a Comment