C sharp - No entiendo la recursividad

 
Vista:
sin imagen de perfil
Val: 30
Ha disminuido su posición en 9 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

No entiendo la recursividad

Publicado por Flash (21 intervenciones) el 05/09/2016 20:59:45
Estoy en este momento con la recursividad,para ejemplos como factoriales lo veo util y curioseando e mirado que al cerrar la ventana usa tambien recursividad, he tratado de entenderlo pero no puedo.
Alguna ayuda?
1
2
3
4
5
6
7
8
private System.ComponentModel.IContainer component = null;
protected override void Dispose(bool disposing)
{
    if (disposing && (component != null))
    {
        component.Dispose();
    }
    base.Dispose(disposing);
Es sacada de cuando usas windows form
Si falta algo (el que tengo son 3 cs) lo subo lo que quiero es entenderlo
Gracias de antemano y siento las molestias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No entiendo la recursividad

Publicado por Nacho (115 intervenciones) el 06/09/2016 15:20:10
Ahí no hay recursividad. Una cosa es el Dispose del Form y otra la de cada componente que contenga ese Form.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alain
Val: 2
Ha aumentado su posición en 24 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

No entiendo la recursividad

Publicado por Alain (1 intervención) el 06/09/2016 19:23:54
En efecto no entiendes la recursividad. Voy a tomar como ejemplo lo siguiente del primer link que me encontré en internet: http://www.tutorialesprogramacionya.com/csharpya/detalleconcepto.php?codigo=175&inicio=40

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Recursividad1
{
public class Recursividad
{

void Repetir()
{
Repetir();
}

static void Main(string[] args)
{
Recursividad re = new Recursividad();
re.Repetir();
}

}
}
Si te das cuenta dentro de la función Repetir hay una invocación a la misma función (mismo nombre y mismo tipo de retorno). Basicamente una funcion recursiva es aquella donde dentro de su implementacion realiza una llamada a ella misma (ver ejemplo de factorial). Para que eso no se haga infinito tiene que haber en la implementacion de la funcion un caso base, que sirve de parada.

En el ejemplo que muestras, tal y como te comentaron no hay recursividad, porque si te das cuenta en la implementacion lo que se pone es component.Dispose(); o sea, se esta invocando a un metodo llamado Dispose de la clase a la que pertenece la instancia component. Que se haya invocado dentro de un metodo llamado Dispose (de otra clase) no lo hace recursivo. Si hubiera sido algo como esto (ilustrar no es que tenga sentido):
if (disposing && (component != null))
{
Dispose();
}

si que seria recursivo. Tambien aclara los conceptos de Herencia y Polimorfismo de la Programacion orientada a objetos. Saludos y espero haberte ayudado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 30
Ha disminuido su posición en 9 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

No entiendo la recursividad

Publicado por Flash (21 intervenciones) el 08/09/2016 18:29:06
Buff estoy en las mismas solo se que no es recursivo he probado con un laberinto (no es mio) pero no entiendo como funciona (para saber la tecncia esta)

Voy a necesitar un profe a este paso porque solo me esta siendo imposible

p.d: Es justo de esa web donde estoy sacando las cosas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No entiendo la recursividad

Publicado por Nacho (115 intervenciones) el 09/09/2016 10:25:59
Una función recursiva es una función que se llama a sí misma. No hay mucho más que entender. Consigues lo mismo que con una iteracción, pero de otra manera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar