NullReferenceException durante la inicialización del objeto [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Qué es una excepción NullReferenceException y cómo la soluciono? 31 respuestas

¿Por qué hay una NullReferenceException cuando se intenta establecer el valor de X en el siguiente código? Funciona bien cuando usonew palabra clave al inicializarB, pero por qué se compila bien sinnew y luego falla durante el tiempo de ejecución?

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta