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.

questionAnswers(6)

yourAnswerToTheQuestion