Originariamente inviato da Glabrezu
Non capisco perchè/in che modo avviene la cosa.
Semplice, un array è un tipo di riferimento, per cui se assegni un riferimento di un array ad un'altra variabile quest'ultima sarà di fatto una specie di alias della prima.
codice:
int[] array=new int[10]; //Dichiara una variabile di tipo int[] (=> di fatto un puntatore ad un array di int), crea in memoria un nuovo array in grado di contenere 10 int e assegna un puntatore ad esso ad array
array[1]=5; //Imposta il secondo elemento dell'array a 5
int[] array2=array; //Assegna un puntatore all'array anche ad array2. Ora array e array2 puntano allo stesso array in memoria
array2[1]=10; //Imposta il secondo elemento dell'array - lo stesso array di array - a 10
Console.WriteLine(array[1]); //Visualizza il contenuto del secondo elemento dell'array, che sarà 10