using System; internal class Caja : ISistemaInglesMedidas, ISistemaInternalMedidas { double anchoPulgadas; double largoPulgadas; // Constructor public Caja(double ancho, double largo) { anchoPulgadas = ancho; largoPulgadas = largo; } // Implementación explícita de los miembros de ISistemaInglesMedidas double ISistemaInglesMedidas.Ancho() { return anchoPulgadas; } double ISistemaInglesMedidas.Largo() { return largoPulgadas; } // Implementación explícita de métodos abstractos de ISistemaInternalMedidas double ISistemaInternalMedidas.Ancho() { return anchoPulgadas * 2.54; } override double ISistemaInternalMedidas.Largo() { return largoPulgadas * 2.54; } public static void Main() { Caja c = new Caja(20.0, 30.0); // Uso del sistema inglés: declaración de un tipo ISistemaInglesMedidas ISistemaInglesMedidas sistemaIngles = (ISistemaInglesMedidas) c; // uso del sistema internacional: declaración de un tipo ISistemaInternalMedidas ISistemaInternalMedidas sistemaInternalMedidas = (ISistemaInternalMedidas) c; // Presentación de resultados en ambos sistemas Console.WriteLine("Ancho (pulgadas): {0}", sistemaIngles.Ancho()); Console.WriteLine("Largo (pulgadas): {0}", sistemaIngles.Largo()); Console.WriteLine("Ancho (cm): {0}", sistemaInternalMedidas.Ancho()); Console.WriteLine("Largo (cm): {0}", sistemaInternalMedidas.Largo()); } } interface ISistemaInglesMedidas { double Largo(); double Ancho(); } interface ISistemaInternalMedidas { double Largo(); double Ancho(); }