示例#1
0
        public static void execute()
        {
            char exec = '-';
            if (exec == '+') {
                Console.WriteLine("Exemple d'utilisation d'une Interface:\r\n");

                classe1 cl1 = new classe1();
                cl1.Name = "Classe1";
                cl1.xcl1 = "xcl1";
                cl1.Action(); // Méthode implémentée dans l'interface Iinterface1 grace à la classe d'extention ExtClass1

                Iinterface1 cl2 = new classe2();
                //cl2.Name = "Classe2";          // Iinterface ne permet que le GET pas le SET
                ((classe2)cl2).Name = "Classe2"; // contrairement à classe2 qui permet le SET
                                                 //cl2.xcl2 = "xcl2";          // le type de la reference limite l'accès aux proprietes et methodes de l'interface
                ((classe2)cl2).xcl2 = "xcl2"; // En castant, ont y a accès --> possible uniquement si l'objet réréfencé par cl2 est bien tu type classe2

                methode(cl1); // les 2 classes qui implémentent Iinterface peuvent
                methode(cl2); // être passée en paramètres grace aux type Iinterface utilisé dans la signature de la méthode.

                Iinterface1 clI1 = cl1; // Référence à cl1, limitée à l'Iinterface1
                Iinterface2 clI2 = cl1; // Référence à cl1, limitée à l'Iinterface2

                cl1.Move();  // Appelle le Move de la classe
                clI1.Move(); // Appelle le Move spécifique de l'Iinterface1 de la classe
                clI2.Move(); // Appelle le Move spécifique de l'Iinterface2 de la classe

                cl2.Move(); // Appelle le Move implémenté dans la classe

                Console.WriteLine("\r\n");
            }
        }
示例#2
0
        public static void execute()
        {
            char exec = '-';
            if (exec == '+') {
                Console.WriteLine("Exemple d'utilisation Unity:\r\n");

                var container = new UnityContainer();

                container.RegisterType<Iclasse1, classe1>();

                string nom = "Un String";
                container.RegisterInstance(nom);

                classe2 cl2 = new classe2(); cl2.nom = "CLASSE2";
                container.RegisterInstance(cl2);

                container.RegisterType<classe3>();

                var hc = container.Resolve<HomeController>();
                hc.Index();

                Console.WriteLine("\r\n");
            }
        }
示例#3
0
 public HomeController(Iclasse1 cl1, string str, classe2 cl2, classe2 cl2Bis)
 {
     Console.WriteLine("HomeController est instancié:");
     _cl1 = cl1;
     _str = str;
     Console.WriteLine(cl2.nom);
     cl2Bis.nom = "CLASSE2 MODIFIEE PAR UNE AUTRE REFERENCE";
     Console.WriteLine(cl2.nom);
     //Console.WriteLine(cl3.prenom);
 }