C #: matriz de referências / ponteiros para um número inteiro
Eu gostaria de manter referências a vários shorts em uma matriz. Supus que eu pudesse criar os shorts e adicioná-los à matriz. Então ... toda vez que o objeto referenciado é alterado, isso é refletido na matriz e vice-versa. Fazer algumas tentativas me convenceu de que não é bem assim. De fato, parece que o valor é transferido, mas não uma referência.
O código abaixo cria dois curtos, os adiciona a uma matriz como objetos e altera o curto original. No entanto, ao acessar o suposto referenciado curto na matriz, ele não mudou, o que me leva a acreditar que é um objeto totalmente novo que não tem nada a ver com o original.
Console.WriteLine("Testing simple references:");
short v1 = 1;
short v2 = 2;
object[] vs = new object[2];
vs[0] = v1;
vs[1] = v2;
v1 = 1024;
v2 = 512;
Console.WriteLine(" v1: " + (short)vs[0]);
Console.WriteLine(" v2: " + (short)vs[1]);
Estou entendendo mal algo fundamental aqui e agradeceria se alguém pudesse explicar, e talvez me aponte para uma solução que faça o que eu quero.