Пустой инициализатор коллекции для свойства списка приводит к нулю

Когда язапустить этот кодне инициализируетсяThisIsAList в пустую коллекцию, как я ожидал ... вместоThisIsAList был нулевым

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

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

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

Почему это не ошибка компиляции? Почему результатnull?

Мне было интересно, возможно, здесь происходило неявное преобразование, но следующие попытки привели к ошибкам компиляции:

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

Согласно документации MSDN наинициализаторы коллекцииПохоже, инициализатор коллекции в основном просто обрабатывает вызовAdd() для тебя. Поэтому я искал возможные перегрузки дляList.Add, но не нашел ничего, что, я думаю, применимо.

Может кто-нибудь объяснить, что здесь происходит из спецификации C #?

Ответы на вопрос(1)

Ваш ответ на вопрос