Recursividade em C#

2 respostas
R

Galera eu tenho dúvidas se C# dá suporte à declaração recursiva, onde se utiliza as próprias declarações que produz.

Eu acho que C++ aceitaria o seguinte:

struct Nodo
        {
            public Nodo proxNodo;
            public int valor;

            public Nodo(Nodo nodo, int valor)
            {
                this.proxNodo = nodo;
                this.valor = valor;
            }
        }

Mas C# não aceita, reclama q causa um ciclo dentro do struct. Existe alguma maneira de se declarar recursivamente em C#?

Obs: Só uma resalva que o código está na sintaxe do C#, não me recordo bem a sintaxe de C++ para struct faz tempo q usei C++ =P

2 Respostas

louds
raffccc:
Galera eu tenho dúvidas se C# dá suporte à declaração recursiva, onde se utiliza as próprias declarações que produz.

Eu acho que C++ aceitaria o seguinte:

struct Nodo
        {
            public Nodo proxNodo;
            public int valor;

            public Nodo(Nodo nodo, int valor)
            {
                this.proxNodo = nodo;
                this.valor = valor;
            }
        }

Mas C# não aceita, reclama q causa um ciclo dentro do struct. Existe alguma maneira de se declarar recursivamente em C#?

Obs: Só uma resalva que o código está na sintaxe do C#, não me recordo bem a sintaxe de C++ para struct faz tempo q usei C++ =P

Esse código não funcionaria em C++ também. Ambas linguagens suportam escalares definidos pelo usuário (value types). Value types devem ter
sua dimensão e tamanho definidos em tempo de compilação, o que não é possível no caso da sua declaração.

Se você usar uma classe em vez de um struct o teu código C# funcionará, no caso do C++ precisa usar ponteiros.

R

Ahhh, blza =D, vlw

Criado 18 de junho de 2008
Ultima resposta 18 de jun. de 2008
Respostas 2
Participantes 2