Назначить интерфейсный массив инициализатора компиляции, но почему?

Сегодня я думал, что было бы неплохо создать анонимный объект, который является типом некоторого интерфейса, и я видел на SO, что я не только один.

Прежде чем я начал проверять, что происходит, я написал код, подобный приведенному ниже. К моему удовольствию это скомпилировано, я использую .net Framework 4, и я знаю, что нет никакого способа сделать интерфейс реализации анонимных объектов, но я не видел жалоб от VS по поводу этого кода.

Еще лучше, когда я ставлю фигурные скобки, intelisense находит «Свойство» моего интерфейса, как если бы это был действительный код.

Почему эта часть компилируется, и при запуске она дает исключение нулевой ссылки?

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Holder holder = new Holder { someInterface = { Property = 1 } };
            Console.WriteLine(holder.someInterface.Property);
        }
    }

    class Holder
    {
        public ISomeInterface someInterface{get; set;}
    }

    interface ISomeInterface
    {
        int Property { get; set; }
    }
}

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

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