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(); }
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 } }
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"); } }