Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Last active August 29, 2015 14:01
Show Gist options
  • Save Fhernd/60adf3865d40c9125523 to your computer and use it in GitHub Desktop.
Save Fhernd/60adf3865d40c9125523 to your computer and use it in GitHub Desktop.
Demostración del concepto de implementación de miembros de interfaz explícitamente en C#.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Caja.cs
//
// Propósito: Demostrar el uso uso eficiente de StringBuilder
//
============================================================*/
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;
}
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());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment