O inicializador de coleção vazio para a propriedade da lista resulta em nulo

Quando euexecute este código, não inicializaThisIsAList para uma coleção vazia como eu esperava ... em vez dissoThisIsAList foi nulo.

void Main()
{
    var thing = new Thing
    {
        ThisIsAList = {}
    };

    Console.WriteLine(thing.ThisIsAList == null); // prints "True"
}

public class Thing
{
    public List<string> ThisIsAList { get; set; }
}

Por que isso não é um erro de compilação? Por que o resultadonull?

Fiquei me perguntando se talvez houvesse uma conversão implícita acontecendo aqui, mas as seguintes tentativas produziram erros de compilação:

thing.ThisIsAList = Enumerable.Empty<string>().ToArray();
List<int> integers = { 0, 1, 2, 3 };

De acordo com a documentação do MSDN sobreinicializadores de coleção, parece que um inicializador de coleção basicamente trata apenas de chamadasAdd() para voce. Então eu procurei possíveis sobrecargas paraList.Add, mas não encontrou nada que eu acho que se aplicaria.

Alguém pode explicar o que está acontecendo aqui a partir da especificação C #?

questionAnswers(1)

yourAnswerToTheQuestion