Cada elemento tiene una interfaz, IItem
. Además de esto, existe una interfaz conocida como IDrawableItem
que hereda de Item.Casting y herencia de interfaz
El siguiente código intenta dibujar un elemento dibujable, pero no puede, ya que la colección almacena esta clase acepta solo IItem
. Puede agregar cualquier cosa que herede de IItem
a esta clase, pero usar otros métodos solo se puede lograr mediante casting.
foreach (var item in Items) {
item.Draw(); // The casting would go here.
}
sé cómo lanzar, as
etc ... pero es esto aceptable? ¿Es una mejor práctica?
Solo me pregunto si hay otras formas de manejar estos escenarios.
El código siguiente trata de dibujar un elemento dibujable, pero no puede, ya que la colección que almacena esta clase solo acepta IItem. - ¿POR QUÉ? Cuéntanos un poco sobre el diseño. ¿Puedes cambiarlo? –
El código de Jason te sacará de tu dilema. El problema es si este es el diseño correcto para sus objetos, y eso es realmente difícil de decir a partir de 2 líneas de descripción. – hackerhasid
¿Quizás use una colección que almacene IDrawbleItem s en su lugar? –