none
como puedo simplificar este codigo RRS feed

  • Pregunta

  • alguien me puede decir como puedo simplificar este codigo con metodos




    private void clientesToolStripMenuItem_Click(object sender, EventArgs e)
            {
                ClientesForm clientes = new ClientesForm();
                clientes.MdiParent = this;
                clientes.Show();
            }

            private void peliculasToolStripMenuItem_Click(object sender, EventArgs e)
            {
                PeliculasForm pelicula = new PeliculasForm();
                pelicula.MdiParent = this;
                pelicula.Show();
               
            }

            private void rentarPeliculasToolStripMenuItem_Click(object sender, EventArgs e)
            {
                RentarForm rentar = new RentarForm();
                rentar.MdiParent = this;
                rentar.Show();
            }

            private void devolverPeliculasToolStripMenuItem_Click(object sender, EventArgs e)
            {
                DevolverPeliculaForm devolver = new DevolverPeliculaForm();
                devolver.MdiParent = this;
                devolver.Show();
            }




    miércoles, 26 de marzo de 2008 7:04

Respuestas

  • Hola.

    Este ejemplo tiene lo que preguntas y alguna cosa más. Para adaptarlo a lo que indicas deberías llamar a las clases hijas de forma apropiada.

    Espero que te sirva.
    Saludos.
    -------------------------------------

    using System;

    using System.Text;

    namespace herenciaPrueba
    {
        class Program
        {
            static void Main(string[] args)
            {
                EjecutaTodo obj = new EjecutaTodo();
                obj.Run0();
                Console.WriteLine("FIN. "); Console.ReadLine();
            }
        }
       
        public class EjecutaTodo
        {
            public void Run0()
            {
                System.Collections.ArrayList tareas = new System.Collections.ArrayList();
                tareas.Add(new Tarea0());
                tareas.Add(new Tarea1());
                //...
                tareas.Add(new TareaN());

                foreach (Tarea tarea in tareas)
                {
                    Console.WriteLine("INICIO {0}", tarea.ToString());
                    tarea.Run();
                    Console.WriteLine("FIN {0}", tarea.ToString());
                }
            }
        }

        public abstract class Tarea // Clase "padre" de la que heredaran el resto
        {
            public abstract void Run();
        }
        public class Tarea0 : Tarea // Clase hija
        {
            public override void Run() { Console.WriteLine("Tarea 0 en ejecución"); /*otro código*/ }
            // ...
        }
        public class Tarea1 : Tarea  // Clase hija
        {
            public override void Run() { Console.WriteLine("Tarea 1 en ejecución"); /*otro código*/ }
            // ...
        }
        // ...
        public class TareaN : Tarea  // Clase hija
        {
            public override void Run() { Console.WriteLine("Tarea N en ejecución"); /*otro código*/ }
            // ...
        }
    }

    --------------------------
    miércoles, 26 de marzo de 2008 10:01