En ocasiones, sobre todo cuando la arquitectura de una aplicación comienza a hacerse compleja, recibimos objetos que necesitamos "castear" o hacer "boxing" contra un tipo base o una interfaz, esto puede pasar en muchos casos y nos es indispensable hacer el cast del estilo
Tipo objeto = (Tipo) otroObjeto;
Para que otroObjeto se convierta en Tipo y poder utilizar sus métodos, etc. Bueno, vamos a ser brever y vamos directamente al código, no sin antes contarle que esto se logra verificando si nuestro objeto implementa o hereda de algo con el operador is, del modo
if(objeto is Tipo)
using System; using System.Collections.Generic; using System.Text; namespace saberUnTipo { class Program { static void Main(string[] args) { ClaseQueImplementaYHereda(); ClaseSola(); Console.ReadLine(); } public static void ClaseQueImplementaYHereda() { ClasePrueba clasePrueba = new ClasePrueba(); Console.WriteLine("Probando ClasePrueba"); Console.WriteLine("Implementa MiInterfase {0}", (clasePrueba is MiInterfase)); Console.WriteLine("Hereda de ClaseBase {0}", (clasePrueba is ClaseBase)); Console.WriteLine("-------------------------------------------------"); } public static void ClaseSola() { ClaseSola clasePrueba = new ClaseSola(); Console.WriteLine("Probando ClaseSola"); Console.WriteLine("Implementa MiInterfase {0}", (clasePrueba is MiInterfase)); Console.WriteLine("Hereda de ClaseBase {0}", (clasePrueba is ClaseBase)); Console.WriteLine("-------------------------------------------------"); } } public class ClasePrueba: ClaseBase, MiInterfase { } public class ClaseSola { } public class ClaseBase { } public interface MiInterfase { } }
Simple, hasta la próxima.
No hay comentarios:
Publicar un comentario