Pasar array por referencia

24/09/2004 - 10:04 por Carla | Informe spam
Hola a todos,
Tengo que pasar un array(de ints) a un metodo.Dentro del
metodo puedo cambiar los valores del array
perfectamente.Pero no puedo cambiar el array.Es decir,si
igualo el array a otro que tengo(que puede ser igual,mas
pequeño o mas grande),dentro del metodo si esta todo
bien,pero cuando retorno al metodo llamante, la referencia
es la antigua.Por que pasa esto?

Gracias y un saludo

Por ejemplo

public void inicio()
{
int[] numeros=new int[2]
numeros[0]=1;
numeros[1]=2;
cambiarArray(numeros)
//Aqui el array numeros solo tiene dos dimensiones
}

private void cambiarArray(int[] numeros)
{
int[] auxiliar=new int3]
auxiliar[0]=1;
auxiliar[1]=2;
auxiliar[3]=3
numeros=auxiliar;
}
 

Leer las respuestas

#1 Antonio Cuesta
24/09/2004 - 11:07 | Informe spam
Buenos días

El problema es que no estas pasando los argumentos como referencia, para eso
tal como se indica antes en otro mensaje hay que poner "ref" u "out" en los
parametros.


Prueba lo siguiente:

public void inicio()
{
int[] numeros=new int[2];
numeros[0]=1;
numeros[1]=2;
cambiarArray(out numeros);
//Aqui el array numeros solo tiene dos dimensiones
}

private void cambiarArray(out int[] numeros)
{
int[] auxiliar=new int[3];
auxiliar[0]=1;
auxiliar[1]=2;
auxiliar[3]=3;
numeros=auxiliar;
}


Busca en la ayuda información para aclararte sobre el uso de "ref" y "out"
para que veas sus diferencias.

Un saludo:
Antonio Cuesta.

Preguntas similares