static void Main(string[] args)
        {
            Console.Title = "Tutorial C# nivel Avanzado 28 --- Manejo de interfaces con métodos";

            // Arrays de interfaces

            IElectronico[] teles         = { new CTelevisor("Charp"), new CTelevisor("Zony"), new CRadio("RCB"), new CTelevisor("Filips") };
            IElectronico   aparatoCreado = null;

            for (int n = 0; n < teles.Length; n++)
            {
                Console.WriteLine(teles[n]);
            }

            Console.WriteLine("---");

            // Uso de interfaces con metodos
            CTelevisor miTV    = new CTelevisor("Charp TV");
            CRadio     miRadio = new CRadio("RCB Radio");

            Muestra(miRadio);
            Muestra(miTV);

            Console.WriteLine("---");

            // Metodo que regresa objeto que implementa la interface
            aparatoCreado = CreaAparato();
            aparatoCreado.Encender(true);
            Console.WriteLine(aparatoCreado);
        }
Example #2
0
        static void Main(string[] args)
        {
            //Arreglos de interfaces
            IElectronico[] teles         = { new CTelevisor("Charp"), new CTelevisor("Zony"), new CRadio("RCB Radio"), new CRadio("Phillips") };
            IElectronico   aparatoCreado = null;

            for (int n = 0; n < teles.Length; n++)
            {
                Console.WriteLine(teles[n]);
            }

            Console.WriteLine("--------");

            //Uso de interfaces con metodos
            CTelevisor miTV    = new CTelevisor("Charp TV");
            CRadio     miRadio = new CRadio("RCB Radio");

            Muestra(miTV);
            Muestra(miRadio);

            Console.WriteLine("--------");

            //Metodo que regresa objeto que implementa IElectronico
            aparatoCreado = CreaAparato();
            aparatoCreado.Encender(true);
            Console.WriteLine(aparatoCreado);

            Console.ReadKey();
        }
        // Este metodo puede regresar cualquier objeto que implemente a IElectrónico
        static IElectronico CreaAparato()
        {
            IElectronico aparato = null;
            string       dato    = string.Empty;
            int          opcion  = 0;

            Console.WriteLine("¿Qué deseas crear? 1-Tele, 2-Radio");
            dato   = Console.ReadLine();
            opcion = Convert.ToInt32(dato);

            switch (opcion)
            {
            case 1:
                Console.WriteLine("Dame la marca de la televisión: ");
                dato    = Console.ReadLine();
                aparato = new CTelevisor(dato);
                break;

            case 2:
                Console.WriteLine("Dame la marca de la radio: ");
                dato    = Console.ReadLine();
                aparato = new CRadio(dato);
                break;
            }

            return(aparato);
        }
Example #4
0
        static IElectronico CrearAparato()
        {
            IElectronico aparato = null;
            string       dato    = string.Empty;
            int          opcion  = 0;

            Console.WriteLine("Que deseas crear? 1-Tele, 2-Radio");
            dato   = Console.ReadLine();
            opcion = Convert.ToInt32(dato);

            if (opcion == 1)
            {
                Console.WriteLine("Dame la marca de la tele");
                dato    = Console.ReadLine();
                aparato = new CTelevisor(dato);
            }
            if (opcion == 2)
            {
                Console.WriteLine("Dame la marca del radio");
                dato    = Console.ReadLine();
                aparato = new CRadio(dato);
            }

            return(aparato);
        }
Example #5
0
        //Podemos definir un método que devuelve un objeto que implemente una interfaz adecuada, sin especificar el tipo.
        static IElectronico CreaAparato()
        {
            IElectronico aparato = null;
            string       dato    = string.Empty;
            int          opcion  = 0;

            Console.WriteLine("1-crear tele, 2-crear radio");
            dato   = Console.ReadLine();
            opcion = Convert.ToInt32(dato);

            switch (opcion)
            {
            case 1:
                Console.WriteLine("Marca de la tele->");
                dato    = Console.ReadLine();
                aparato = new CTelevisor(dato);
                break;

            case 2:
                Console.WriteLine("Marca de la Radio->");
                dato    = Console.ReadLine();
                aparato = new CRadio(dato);
                break;
            }

            return(aparato);
        }
Example #6
0
        static void Main(string[] args)
        {
            /*arreglo interfaz*/
            IElectronico[] electronicos = { new tele("JVC"), new radio("daiutsu"), new tele("ASUS") };
            /*se permite hacer un arreglo de los comunes a ielectronico*/


            foreach (IElectronico implementados in electronicos)
            {
                Console.WriteLine(implementados); /*ARREGLO POLIMORFICO*/
            }

            Console.WriteLine("*---*");

            tele  tele  = new tele("sharpey");
            radio radio = new radio("stanley");

            muestra(tele);
            muestra(radio);
            Console.WriteLine("*---*");

            IElectronico electronico = null;

            electronico = CrearAparato();
            electronico.encender(false);
            Console.WriteLine(electronico); /*to muestra comun podriamos agregar*/
            Console.ReadKey();
        }
Example #7
0
        static void Main(string[] args)
        {
            //array de Interfaces
            //Todos los objetos del siguiente array implementan la misma interfaz.. no tienen porqué estar relacionados o pertenecer a la misma
            //cadena de herencia. Lo único que tienen en comun es que implementna la interfaz
            //Es un array con capacidades polimorficas
            IElectronico[] teles         = { new CTelevisor("Sony"), new CTelevisor("Telefunken"), new CRadio("Panasonic"), new CRadio("Thompson") };
            IElectronico   aparatoCreado = null;

            for (int i = 0; i < teles.Length; i++)
            {
                Console.WriteLine(teles[i]);
            }
            Console.WriteLine("----");

            //interfaces con métodos
            CTelevisor mitele  = new CTelevisor("Sharp");
            CRadio     miradio = new CRadio("RCB");

            Muestra(mitele);
            Muestra(miradio);
            Console.WriteLine("----");


            //Métodos que devuelven instancias de clases diferentes que implementan interfaz
            IElectronico aparato = CreaAparato();

            aparato.Encender(true);
            Console.WriteLine(aparato);


            Console.ReadKey();
        }
Example #8
0
        public static void Main(string[] args)
        {
            //Arreglos de interfaces lo unico que podrian tener en comun es la implementacion de interfaz por ejemplo Ctelevisor y Cradio
            IElectronico[] teles = { new CTelevisor("charp"), new CTelevisor("Zony"), new CRadio("RCB"), new CTelevisor("philips") };

            foreach (IElectronico aparato  in teles)
            {
                Console.WriteLine(aparato);
            }
            Console.WriteLine("-------------------------");



            //uso de interfaces con metodos
            CTelevisor miTV   = new CTelevisor("Sharp tv");
            CRadio     mRadio = new CRadio("Sony Walk man");

            Muestra(miTV);
            Muestra(mRadio);



            Console.WriteLine("-------------------------");

            IElectronico aparatocreado = null;

            aparatocreado = CreaAparato();
            aparatocreado.Encender(true);
            Console.WriteLine(aparatocreado);
        }
Example #9
0
        static IElectronico CrearAparato()
        {
            /*en vez de llamar a return radio o tele puedo regresar un Ielectronico*/
            //IElectronico aparato = null;
            //aparato = new tele("tele polimorfica");
            //return aparato;
            IElectronico aparato = null;

            aparato = new radio("radio polimorfica");
            return(aparato);
        }
Example #10
0
 //Este metodo puede recibir cualquier objeto que implemente la interfaz IElectronico
 static void Muestra(IElectronico aparato)
 {
     if (aparato is CTelevisor)
     {
         Console.WriteLine("El televisor es {0}", aparato);
     }
     if (aparato is CRadio)
     {
         Console.WriteLine("El Radio es {0}", aparato);
     }
 }
Example #11
0
        // metodos que pueden recibir un objeto que implemente determinada interface

        // Este metodo puede recibir cualquier objeto que implemente IELEctronico

        static void Muestra(IElectronico aparato)
        {
            //Codigo comun a todos los aparatos
            aparato.Encender(true);
            if (aparato is CTelevisor)
            {
                Console.WriteLine(aparato);
            }
            if (aparato is CRadio)
            {
                Console.WriteLine(aparato);
            }
        }
Example #12
0
        static void Muestra(IElectronico aparato)
        {
            aparato.Encender(true);

            if (aparato is CTelevisor)
            {
                Console.WriteLine("El televisor es {0}", aparato);
            }

            if (aparato is CRadio)
            {
                Console.WriteLine("El radio es {0}", aparato);
            }
        }
Example #13
0
        public static void Main(string[] args)
        {
            //como reconocer si un objeto implenta a determinada interfaz
            CTelevisor   miTele   = new CTelevisor("Sharpy");
            CPelota      miPelota = new CPelota("Grande");
            IElectronico objeto   = null;

            //metodo 1, por excepcion

            try
            {
                Console.WriteLine("Probamos la tele");
                objeto = (IElectronico)miTele;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }


            //Metodo 2

            Console.WriteLine("Probamos la tele");
            //se usa as, retorna null sino puede ser tratado como la interface a probar
            objeto = miTele as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa Ielectronico");
            }

            //Metodo 3, por is ( es p es compatible con)

            Console.WriteLine("Probamos la tele");

            if (miTele is IElectronico)
            {
                ((IElectronico)miTele).Encender(true);
            }

            else
            {
                Console.WriteLine("No implementa IElectronico");
            }
        }
Example #14
0
        //Este metodo puede recibir a cualquier objeto que implemente IElectronico
        static void Muestra(IElectronico aparato)
        {
            //Podemos distinguir un objeto u otro por su clase
            //también puede haber código común aplicable a cualquier objeto que implemente IEectronico
            aparato.Encender(true);

            if (aparato is CTelevisor)
            {
                Console.WriteLine("La tele es {0}", aparato);
            }

            if (aparato is CRadio)
            {
                Console.WriteLine("La Radio es {0}", aparato);
            }
        }
        // Este metodo puede recibir cualquier objecto que implemente IElectronico
        static void Muestra(IElectronico aparato)
        {
            // Codigo comun
            aparato.Encender(true);

            // Codigo segun el tipo
            if (aparato is CTelevisor)
            {
                Console.WriteLine("El TELEVISOR es #{0}#", aparato);
            }

            if (aparato is CRadio)
            {
                Console.WriteLine("La RADIO es #{0}#", aparato);
            }
        }
Example #16
0
 static void muestra(IElectronico electronico)
 {
     electronico.encender(true);
     /*codigo comun a todos las clases electronicos*/
     if (electronico is IElectronico)
     {
         Console.WriteLine("es electrico");
     }
     if (electronico is radio)
     {
         Console.WriteLine("es una radio tambien");
     }
     if (electronico is tele)
     {
         Console.WriteLine("es una tele tambien");
     }
 }
Example #17
0
        static void Main(string[] args)
        {
            //saber si un objeto implementa a un interfaz

            Ctelevisor   TV     = new Ctelevisor("jvc");
            Cpelota      Pelota = new Cpelota("grande");
            IElectronico objeto = null;

            try
            {
                objeto = (IElectronico)TV;
                objeto.encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                objeto = (IElectronico)Pelota;
                objeto.encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            objeto = TV as IElectronico;

            /*si puede ser tratado hace la instancia sino null*/

            /*if(!null) es (null) no es */

            if (TV is IElectronico)
            {
                //implementa
            }
            else
            {
                //no implementa
            }
        }
Example #18
0
        static void Main(string[] args)
        {
            IElectronico[] teles         = { new CTelevisor("Charp"), new CTelevisor("Zony"), new CRadio("RCB"), new CTelevisor("Filips") };
            IElectronico   aparatoCreado = null;

            for (int n = 0; n < teles.Length; n++)
            {
                Console.WriteLine(teles[n]);
            }

            Console.WriteLine("---");

            CTelevisor miTV    = new CTelevisor("Charp TV");
            CRadio     miRadio = new CRadio("RCB Radio");

            Muestra(miRadio);
            Muestra(miTV);

            Console.WriteLine("---");

            aparatoCreado = CrearAparato();
            aparatoCreado.Encender(true);
            Console.WriteLine(aparatoCreado);
        }
Example #19
0
        static void Main(string[] args)
        {
            CTelevisor   miTele   = new CTelevisor("Sharpy");
            CPelota      miPelota = new CPelota("Grande");
            IElectronico objeto   = null;

            try
            {
                Console.WriteLine("Probamos la tele");
                objeto = (IElectronico)miTele;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("Probamos la pelota");
                objeto = (IElectronico)miPelota;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("----");

            Console.WriteLine("Probamos la tele");
            objeto = miTele as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la pelota");
            objeto = miPelota as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No impleta IElectronico");
            }

            Console.WriteLine("------");

            Console.WriteLine("Probamos la tele");

            if (miTele is IElectronico)
            {
                miTele.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la pelota");

            if (miPelota is IElectronico)
            {
                Console.WriteLine("Wow tienes una pelota electronica");
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }
        }
Example #20
0
        static void Main(string[] args)
        {
            //En ocasiones nos interesa conocer si un objeto implementa una interfaz, para en ese caso, hacer llamadas a los métodos de la
            //interfaz.

            CTelevisor mitele   = new CTelevisor("Phillips");
            CPelota    mipelota = new CPelota("Grande");
            //variable del tipo de la interfaz.
            //Objeto puede referenciar a cualquier objeto que implemente IElectronico
            IElectronico objeto = null;

            //*************** Primer método: Fuerza bruta: Generar una excepción
            try
            {
                Console.WriteLine("Probamos la tele");
                //Si la tele implementa la interfaz electronico, la siguiente asignación vale, si no, salta una excepcion
                objeto = (IElectronico)mitele;
                objeto.Encender(true);
            } catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            //repetimos con la pelota y vemos que salta la excepción.
            try
            {
                Console.WriteLine("Probamos la pelota");
                objeto = (IElectronico)mipelota;
                objeto.Encender(true);
            } catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("--------------------");

            //*************** Segundo método: Uso de "as"
            Console.WriteLine("Probamos la tele");

            objeto = mitele as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            objeto = mipelota as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("Pelota No implementa IElectronico");
            }

            Console.WriteLine("--------------------");

            //*************** Tercer método: Uso de "is"

            Console.WriteLine("Probamos la tele");

            if (mitele is IElectronico)
            {
                mitele.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            if (mipelota is IElectronico)
            {
                Console.WriteLine("Pelota electronica");
            }
            else
            {
                Console.WriteLine("Pelota No implementa IElectronico");
            }

            Console.WriteLine("--------------------");

            Console.ReadKey();
        }
Example #21
0
        static void Main(string[] args)
        {
            //Reconocer si un objeto implementa una determinada interfaz

            CTelevisor   miTele   = new CTelevisor("LG");
            CPelota      miPelota = new CPelota("Molten");
            IElectronico objeto   = null;

            //Metodo 1 por exception
            try
            {
                Console.WriteLine("Probamos la tele");
                objeto = (IElectronico)miTele;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("Probamos la pelota");
                objeto = (IElectronico)miPelota;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("--- Metodo 2 ---");

            Console.WriteLine("Probamos la tele");
            objeto = miTele as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la Pelota");
            objeto = miPelota as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("--- Metodo 3 ---");
            Console.WriteLine("Probamos la tele");

            if (miTele is IElectronico)
            {
                miTele.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la Pelota");

            if (miPelota is IElectronico)
            {
                Console.WriteLine("Wow tienes una pelota electronica");
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }


            Console.ReadKey();
        }
Example #22
0
        static void Main(string[] args)
        {
            Console.Title = "Tutorial C# nivel Avanzado 27 --- Conocer cuando el objeto implementa a la interfaz";

            // Como reconocer si un objeto implementa a determinada interface

            CTelevisor   miTele   = new CTelevisor("Sharpy");
            CPelota      miPelota = new CPelota("Grande");
            IElectronico objeto   = null;

            // Método 1, por excepción

            try
            {
                Console.WriteLine("Probamos la tele");
                objeto = (IElectronico)miTele;
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("Probamos la pelota");
                objeto = (IElectronico)miPelota; // El casting si no puede da excepción
                objeto.Encender(true);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("----");

            // Metodo 2, por as (puede ser tratado como)

            Console.WriteLine("Probamos la tele");
            objeto = miTele as IElectronico; // o null si no puede ser tratado

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la pelota");
            objeto = miPelota as IElectronico;

            if (objeto != null)
            {
                objeto.Encender(true);
            }
            else
            {
                Console.WriteLine("No Implementa IElectronico");
            }

            Console.WriteLine("----");

            // Método 3, por is (p es complatible con)

            Console.WriteLine("Probamos la tele");

            if (miTele is IElectronico)
            {
                miTele.Encender(true);
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }

            Console.WriteLine("Probamos la pelota");

            if (miPelota is IElectronico)
            {
                Console.WriteLine("Wow tienes una pelota electrónica");
            }
            else
            {
                Console.WriteLine("No implementa IElectronico");
            }
        }