public static Longitud operator /(Longitud l1, double n) { Longitud cociente; double cant; UnidadLongitud ud; cant = l1.cantidad / n; ud = l1.unidad; cociente = new Longitud(cant, ud); return(cociente); }
/* * * public static Longitud operator -(Longitud l1, Longitud l2) * { * Longitud l2neg = new Longitud(-l2.cantidad, l2.unidad); * return l1 + l2neg; * } * */ // Para que funcionen * y / hay que crear dos operadores: (Longitud, double) y (double, Longitud) public static Longitud operator *(Longitud l1, double n) { Longitud producto; double cant; UnidadLongitud ud; cant = l1.cantidad * n; ud = l1.unidad; producto = new Longitud(cant, ud); return(producto); }
/* Otra forma de hacer el ToSTring() * * string resultado = this.cantidad.ToString() + " "; * int indice = (int)this.unidad; * string[] unidades = { "m", "in", "ft", "yd" }; * resultado = resultado + unidades[indice]; * return resultado; */ // Operadores public static Longitud operator +(Longitud l1, Longitud l2) { Longitud suma; double cant; UnidadLongitud ud; if (l1.unidad == l2.unidad) { cant = l1.cantidad + l2.cantidad; ud = l1.unidad; } else { cant = l1.ValorEnMetros + l2.ValorEnMetros; ud = UnidadLongitud.metros; } suma = new Longitud(cant, ud); return(suma); }
public static Longitud operator -(Longitud l1, Longitud l2) { Longitud resta; double cant; UnidadLongitud ud; if (l1.unidad == l2.unidad) { cant = l1.cantidad - l2.cantidad; ud = l1.unidad; } else { cant = l1.ValorEnMetros - l2.ValorEnMetros; ud = UnidadLongitud.metros; } resta = new Longitud(cant, ud); return(resta); }
static void Main(string[] args) { Longitud l = new Longitud(3, UnidadLongitud.yardas); Console.WriteLine("Longitud original: " + l.ToString()); Console.WriteLine("Cantidad: " + l.Cantidad.ToString()); Console.WriteLine("Unidades: " + l.Unidad.ToString()); Console.WriteLine(); Longitud l2 = l.ValorEnMetros; Console.WriteLine("Longitud en metros: " + l2.ToString()); Console.WriteLine(); Longitud uno = new Longitud(55, UnidadLongitud.pies); Longitud dos = new Longitud(200, UnidadLongitud.pulgadas); Console.WriteLine("Longitud uno: " + uno.ToString()); Console.WriteLine("Longitud dos: " + dos.ToString()); Console.WriteLine("Suma: " + (uno + dos).ToString()); Console.WriteLine("Resta: " + (uno - dos).ToString()); Console.WriteLine("Multiplicación (uno * 5): " + (uno * 5).ToString()); Console.WriteLine("División (uno / 5): " + (uno / 5).ToString()); Console.WriteLine("¿Es uno igual a dos? " + (uno == dos)); Console.WriteLine("¿Es uno distinto de dos? " + (uno != dos)); Console.WriteLine("¿Es uno mayor que dos? " + (uno > dos)); Console.WriteLine("¿Es uno menor que dos? " + (uno < dos)); Console.WriteLine("¿Es uno mayor o igual que dos? " + (uno >= dos)); Console.WriteLine("¿Es uno menor o igual que dos? " + (uno <= dos)); Longitud prueba = new Longitud(1, UnidadLongitud.metros); Console.WriteLine("¿Cuánto es 1m más 8? " + (prueba + 8).ToString()); Console.WriteLine("¿Cuánto es 1m más 8.1? " + (prueba + 8.1).ToString()); Console.WriteLine(); Console.WriteLine(); Console.ReadKey(); }