/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns></returns> public string Mostrar(Changuito c, ETipo tipo) //quitar static { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c._productos.Count, c._espacioDisponible); sb.AppendLine(""); foreach (Producto v in c._productos) { switch (tipo) { case ETipo.Snacks: if (v.GetType() == typeof(Snacks)) { sb.AppendLine(v.Mostrar()); } break; case ETipo.Dulce: if (v.GetType() == typeof(Dulce)) { sb.AppendLine(v.Mostrar()); } break; case ETipo.Leche: if (v.GetType() == typeof(Leche)) { sb.AppendLine(v.Mostrar()); } break; default: sb.AppendLine(v.Mostrar()); break; } } return(sb.ToString()); }
/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns></returns> public static string Mostrar(Changuito c, ETipo tipo) //quitar static { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c._productos.Count, c._espacioDisponible); sb.AppendLine(""); foreach (Producto v in c._productos) { switch (tipo) { case ETipo.Snacks: // en el main pide que solo se muestre uno de los alimentos if (v is Snacks) { sb.AppendLine(v.Mostrar()); } break; case ETipo.Dulce: if (v is Dulce) { sb.AppendLine(v.Mostrar()); } break; case ETipo.Leche: if (v is Leche) { sb.AppendLine(v.Mostrar()); } break; default: sb.AppendLine(v.Mostrar()); break; } } return(sb.ToString()); }
/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns></returns> public static string Mostrar(Changuito c, ETipo tipo) //quitar static { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c._productos.Count, c._espacioDisponible); sb.AppendLine(""); foreach (Producto v in c._productos) { switch (tipo) { case ETipo.Snacks: if (v is Snacks) //pregunto si v es de la clase que necesito. { sb.AppendLine(v.Mostrar()); //de serlo, claramente se sabe que es un objeto de la clase Snacks } //y por lo tanto el Mostrar() será el de Snacks break; case ETipo.Dulce: if (v is Dulce) { sb.AppendLine(v.Mostrar()); } break; case ETipo.Leche: if (v is Leche) { sb.AppendLine(v.Mostrar()); } break; default: sb.AppendLine(v.Mostrar()); break; } } return(sb.ToString()); }
/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns></returns> public static string Mostrar(Changuito c, ETipo tipo) //quitar static { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c._productos.Count, c._espacioDisponible); sb.AppendLine(""); foreach (Producto v in c._productos) { switch (tipo) { case ETipo.Snacks: if (v is Snacks) // Muestro solo Snacks { sb.AppendLine(v.Mostrar()); } break; case ETipo.Dulce: if (v is Dulce) // Muestro solo Dulces { sb.AppendLine(v.Mostrar()); } break; case ETipo.Leche: if (v is Leche) // Muestro solo Leches { sb.AppendLine(v.Mostrar()); } break; default: sb.AppendLine(v.Mostrar()); break; } } return(sb.ToString()); // Se agrega ToString() ya que el metodo devuelve string }
/// <summary> /// Agregará un elemento a la lista /// </summary> /// <param name="c">Objeto donde se agregará el elemento</param> /// <param name="p">Objeto a agregar</param> /// <returns></returns> public static Changuito operator +(Changuito c, Producto p) { bool retorno = false; Changuito cc = c; if (c._espacioDisponible > c._productos.Count) { foreach (Producto v in cc._productos) { if (v == p) { retorno = true; } } if (!retorno) { cc._productos.Add(p); } } return(cc); }
/// <summary> /// Muestro el changuito y TODOS los Productos que contiene /// </summary> /// <returns></returns> public override string ToString() { return(Changuito.Mostrar(this, ETipo.Todos)); }
/// <summary> /// Muestro la concecionaria y TODOS los Productos /// </summary> /// <returns></returns> public override string ToString() { Changuito c = (Changuito)this; return(Changuito.Mostrar(c, ETipo.Todos)); }