Ver Mensaje Individual
  #6  
Antiguo 01-09-2024
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 475
Reputación: 23
REHome Va por buen camino
Hola:

He hecho esto. Porque controla que no haya recursividad sin darme cuenta y funciona.
Código:
using System;

namespace Pila_de_llamadas_Consola_03
{
    internal class Program
    {
        // Contador para controlar la recursividad.
        private static int contador = 0;

        static void e()
        {
            if (contador < 1) // Limita las llamadas recursivas.
            {
                contador++;
                a();
            }
        }
        static void d()
        { // Aquí.
        }

        static void c()
        {
        }

        static void b()
        {
            c();
            d();
            e();
        }

        static void a()
        {
            b();
        }

        static void Main(string[] args)
        {
            a();

            Console.WriteLine("Fin de programa.");

            // Pulse cualquier tecla para salir.
            Console.ReadKey();
        }
    }
}
Funcione para este ejemplo de arriba, pero no para lo que estoy haciendo.

En lo que comentas.
Cita:
En lugar de llamar de unas a otras, puedes regresar con un parámetro a la principal e indicando en ese parámetro a cuál debe ir.
Por lo que veo, no debo llamar a un void a otro void o funciones. Debo terminar ese void o función primero solo para que quite la pila en memoria. Luego como dices, indicar a donde quiero ir, es decir, llamar a otro void, pero este ya estará limpio y no se me queda almacenado sin darme cuenta.

Iba a usar los goto que no usa pila de llamadas en ningún momento, todo el mundo me dicen, prohibido usar goto, porque así evito malas prácticas de programación a cara el futuro.

¿Puedes poner un ejemplo sobre lo que indicas?

Gracias.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita