¿Puede una cadena [] contener System.Object dentro de ella?

¿Sientes que la pregunta es extraña? sí lo que pasó también extraño. Dejame explicar.

He encontrado un fragmento de estoCovarianza y Contravarianza con Arrays C #

string[] strings = new string[1];
object[] objects = strings;
objects[0] = new object();

Jon skeet explica que el código anterior lanzará.ArrayTypeMismatchException, como dijo sí lo hace.

lo que hice es poner un punto de interrupción en la línea 3, utilizando DebuggerVisualizer que configuré manualmenteobjects[0] = new object() No lanza ningún error y funciona. control posteriorstrings[0].GetType() devuelve System.Object. no soloSystem.Object cualquier tipo puede establecerse en la cadena [] mediante el procedimiento mencionado anteriormente.

No tengo idea de cómo sucedió esto, formulé mi pregunta como un comentario allá en la misma pregunta que vi esto pero no tengo respuestas.

Tengo curiosidad por saber qué está pasando detrás. Alguien explica por favor.

Edit1 Esto es incluso interesante

Después de reproducir el comportamiento anterior intente esto

int len = strings[0].Length;

Si coloca el mouse sobre la propiedad, se indica la longitud.strings[0].Length threw ArgumentException con mensajeCannot find the method on the object instance pero en realidad no lanza la excepción y el código se ejecuta dando resultadolen=0