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);
        }
Exemplo n.º 5
0
        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();
        }