NullReferenceException во время инициализации объекта [дубликат]

На этот вопрос уже есть ответ здесь:

Что такое исключение NullReferenceException и как его исправить? 31 ответ

Почему при попытке установить значение X в приведенном ниже коде возникает исключение NullReferenceException? Работает нормально когда пользуюсьnew ключевое слово при инициализацииB, но почему он прекрасно компилируется безnew а потом выходит из строя во время выполнения?

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
                }
            };
    }
}