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