C #: matriz de referencias / punteros a varios enteros

Me gustaría tener referencias a una serie de cortos en una matriz. Supuse que podría crear los cortos y luego agregarlos a la matriz. Entonces ... cada vez que se cambia el objeto referenciado, esto se refleja en la matriz, y viceversa. Hacer algunas pruebas me convenció de que no funciona de esa manera. De hecho, parece que el valor se transfiere pero no es una referencia.

El siguiente código crea dos cortos, los agrega a una matriz como objetos y luego cambia el corto original. Sin embargo, al acceder al supuesto corto referenciado en la matriz, no ha cambiado, lo que me lleva a creer que es un objeto completamente nuevo que no tiene nada que ver con el 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]);

Estoy malentendido algo fundamental aquí y agradecería si alguien pudiera explicarlo, y tal vez me señale una solución que haga lo que quiero.

Respuestas a la pregunta(6)

Su respuesta a la pregunta