Pode um String [] manter System.Object dentro dele?

Você acha que a pergunta é estranha? sim o que aconteceu também estranho. deixe-me explicar.

Eu encontrei um trecho desteCovariância e Contravariância com C # Arrays

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

Jon Skeet explica que o código acima irá lançarArrayTypeMismatchException, como disse sim, sim.

o que eu fiz é colocar um breakpoint na linha 3, usando o DebuggerVisualizer que eu configurei manualmenteobjects[0] = new object() não apresenta nenhum erro e funciona. verificação posteriorstrings[0].GetType() retorna System.Object. não somenteSystem.Object qualquer tipo pode ser definido na string [] pelo procedimento mencionado acima.

Eu não tenho idéia de como isso aconteceu, eu levantei a minha pergunta como um comentário lá na mesma pergunta que eu vi, mas sem respostas.

Estou curioso para saber o que está acontecendo por trás. Alguém explica pls.

Edit1 Isso é mesmo interessante

Depois de reproduzir o comportamento acima tente este

int len = strings[0].Length;

se você colocar o mouse sobre o comprimento da propriedade é dizstrings[0].Length threw ArgumentException com mensagemCannot find the method on the object instance mas na verdade ele não gera exceção e executa o código produzindo resultadolen=0

questionAnswers(2)

yourAnswerToTheQuestion