[C#]Detener ejecucion de codigo tras llamar a funcion
Resultados 1 al 8 de 8

Tema: [C#]Detener ejecucion de codigo tras llamar a funcion

  1. #1
    Desterrado
    Fecha de ingreso
    15 Jan, 10
    Ubicación
    Santiasco :D
    Mensajes
    291

    [C#]Detener ejecucion de codigo tras llamar a funcion

    estoy viendo este tema para ver si existe alguna manera de parar la ejecucion de una funcion que llama a otra funcion en el caso de que pase algo, por ejemplo:

    Código:
            public void funcion1()
            {
                funcion2();
                MessageBox.Show("funcion1 ejecutada");
            }
            public void funcion2()
            {
                MessageBox.Show("funcion2 ejecutada");
            }
    la cosa es que al llamar a funcion1 me llama a funcion2, pero una vez que se ejecuta funcion2 vuelve a la funcion1 y continua ejecutando el codigo que esta debajo de funcion2();

    hay alguna forma de que no se ejecute el codigo que esta debajo de funcion2();?

    intente hacer un break; en funcion2 despues del messagebox pero obviamente no me dejo XD

    lo unico que se me ocurre es agregar una variable bool global y cambiar su valor una vez que se ejecute funcion2 y en funcion1 hacer un if preguntando el estado de el bool para ejecutar o no el otro codigo.


    pero... existe una manera mas corta?

  2. #2
    omfgzorz!!11!one La papa
    Entrenador Pokemon de CHWr

    Avatar de dud1n
    Fecha de ingreso
    24 Apr, 06
    Mensajes
    1,884

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    Código:
            public void funcion1()
            {
                if (funcion2(true));
                       MessageBox.Show("funcion1 ejecutada");
            }
            public bool funcion2(bool value)
            {
                MessageBox.Show("funcion2 ejecutada");
                return value;
    
            }
    Es lo primero que se me vino a la cabeza, quizás hay otra solución mejor... si a funcion2 le pasas false, no va a ejecutar el msgbox.

    Así era o entendí mal?
    Core i7 7700k / Asus Z270E Strix / 16 gb Corsair Vengeance Led / MSI GTX 1080 Gaming X / Crucial MX300 275GB M.2 / 2TB WD Blue / Kraken X62 / NZXT S340 Elite / EVGA SuperNova G3 550W / Corsair Strafe Cherry MX Red / Logitech G502 / Corsair MM300 Extended / Asus VG278E

    feedback

  3. #3
    Desterrado
    Fecha de ingreso
    15 Jan, 10
    Ubicación
    Santiasco :D
    Mensajes
    291

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    si tambien lo habia pensado asi, pero pense que podria existir algun break o algo asi para no tener que llenar con ifs XD

  4. #4
    omfgzorz!!11!one La papa
    Entrenador Pokemon de CHWr

    Avatar de dud1n
    Fecha de ingreso
    24 Apr, 06
    Mensajes
    1,884

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    en todo caso es editar la linea donde llamas a la función, no es llenar con if xD
    Core i7 7700k / Asus Z270E Strix / 16 gb Corsair Vengeance Led / MSI GTX 1080 Gaming X / Crucial MX300 275GB M.2 / 2TB WD Blue / Kraken X62 / NZXT S340 Elite / EVGA SuperNova G3 550W / Corsair Strafe Cherry MX Red / Logitech G502 / Corsair MM300 Extended / Asus VG278E

    feedback

  5. #5
    Desarrollador Avatar de waiflih
    Fecha de ingreso
    27 Jul, 08
    Ubicación
    Santiago
    Mensajes
    576

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    depende del uso que le quieras dar, quizá las excepciones son una buena forma, no hay que estar reinventando la rueda

  6. #6
    Pajarito Nuevo
    Fecha de ingreso
    16 Aug, 11
    Mensajes
    4

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    Cita Iniciado por renobizarrox Ver mensaje
    estoy viendo este tema para ver si existe alguna manera de parar la ejecucion de una funcion que llama a otra funcion en el caso de que pase algo, por ejemplo:

    Código:
            public void funcion1()
            {
                funcion2();
                MessageBox.Show("funcion1 ejecutada");
            }
            public void funcion2()
            {
                MessageBox.Show("funcion2 ejecutada");
            }
    la cosa es que al llamar a funcion1 me llama a funcion2, pero una vez que se ejecuta funcion2 vuelve a la funcion1 y continua ejecutando el codigo que esta debajo de funcion2();

    hay alguna forma de que no se ejecute el codigo que esta debajo de funcion2();?

    intente hacer un break; en funcion2 despues del messagebox pero obviamente no me dejo XD

    lo unico que se me ocurre es agregar una variable bool global y cambiar su valor una vez que se ejecute funcion2 y en funcion1 hacer un if preguntando el estado de el bool para ejecutar o no el otro codigo.


    pero... existe una manera mas corta?
    debajo de funcion2(); coloca un return;

  7. #7
    Guru

    Avatar de Ribosoma
    Fecha de ingreso
    04 Jan, 06
    Ubicación
    Santiago, Chile
    Mensajes
    5,694

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    no entiendo; si no quieres ejecutar el código después de la llamada; simplemente NO escribas el código después de la llamada :S

    No le veo sentido a tu ejemplo.


    Cita Iniciado por waiflih Ver mensaje
    depende del uso que le quieras dar, quizá las excepciones son una buena forma, no hay que estar reinventando la rueda
    No, nunca hay que usar las exception para manejar el flujo del programa. Exception son sólo para errores de verdad.

  8. #8
    Scavenger Avatar de SDogo
    Fecha de ingreso
    16 Apr, 11
    Ubicación
    Valpo city
    Mensajes
    765

    Re: [C#]Detener ejecucion de codigo tras llamar a funcion

    Cita Iniciado por renobizarrox Ver mensaje
    estoy viendo este tema para ver si existe alguna manera de parar la ejecucion de una funcion que llama a otra funcion en el caso de que pase algo, por ejemplo:

    Código:
            public void funcion1()
            {
                funcion2();
                MessageBox.Show("funcion1 ejecutada");
            }
            public void funcion2()
            {
                MessageBox.Show("funcion2 ejecutada");
            }
    la cosa es que al llamar a funcion1 me llama a funcion2, pero una vez que se ejecuta funcion2 vuelve a la funcion1 y continua ejecutando el codigo que esta debajo de funcion2();

    hay alguna forma de que no se ejecute el codigo que esta debajo de funcion2();?

    intente hacer un break; en funcion2 despues del messagebox pero obviamente no me dejo XD

    lo unico que se me ocurre es agregar una variable bool global y cambiar su valor una vez que se ejecute funcion2 y en funcion1 hacer un if preguntando el estado de el bool para ejecutar o no el otro codigo.


    pero... existe una manera mas corta?
    Solamente con eso queda mas o menos claro donde tienes el error. Si quieres saltarte todo hacia abajo, el break debe ir en funcion1, ya que si lo pones en funcion2, sera esta ultima la que haga el break (y por consiguiente retornara al flujo de funcion1)
    Última edición por SDogo; 07/01/2013 a las 04:21

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
*