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