Recursividade em C#

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:

[code] struct Nodo
{
public Nodo proxNodo;
public int valor;

        public Nodo(Nodo nodo, int valor)
        {
            this.proxNodo = nodo;
            this.valor = valor;
        }
    }[/code]

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

[quote=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:

[code] struct Nodo
{
public Nodo proxNodo;
public int valor;

        public Nodo(Nodo nodo, int valor)
        {
            this.proxNodo = nodo;
            this.valor = valor;
        }
    }[/code]

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[/quote]

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.

Ahhh, blza =D, vlw