NullReferenceException durante a inicialização do objeto [duplicado]

Esta pergunta já tem uma resposta aqui:

O que é um NullReferenceException e como corrigi-lo? 31 respostas

Por que existe uma NullReferenceException ao tentar definir o valor de X no código abaixo? Funciona bem quando usonew palavra-chave ao inicializarB, mas por que compila bem semnew e depois falha durante o tempo de execução?

https://dotnetfiddle.net/YNvPog

public class A
{
    public _B B;
    public class _B
    {
        public int X;
    }
}

public class Program
{
    public static void Main()
    {
        var a=new A{
                B={
                    X=1
                }
            };
    }
}

questionAnswers(1)

yourAnswerToTheQuestion