En otros lenguajes de programación como Pascal, por mencionar alguno, si se
crea una función que se llame recursivamente, los valores de los parámetros
se copian por tantos niveles tenga la recursividad. pero en C# cuando
hago esto con alguna clase definida por mi o simplemente con un arreglo, los
valores sde pasan como si fueran por referencia, es decir, si efectuo una
modificación en el nivel 10 de la recursividad, se le aplica a toda la
variable, y no he declarado ningun parametro como ref o out.
Es que C# está diseñado así? Hay alguna manera de que un arreglo que pase
por parámetro en un metodor recursivo se pase por valor?
Es decir:
void Metodo (int nivel, byte[] arreglo)
{
if (nivel==0) return; // Cualquier modificación al arreglo que yo haga
desde aqui se refleja hacia arriba.
Metodo(n-1,arreglo);
}
En C# el Stack o Pila de un metodo no pincha al igual que en Pascal o C++?
Leer las respuestas