[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.