¿Cómo funciona el operador de comparación con null int?

Estoy empezando a aprender tipos anulables y me encontré con el siguiente comportamiento.

Mientras intento int anulable, veo que el operador de comparación me da un resultado inesperado. Por ejemplo, en mi código de abajo, el resultado que obtengo es"ambos y 1 son iguales". Tenga en cuenta que no imprime "nulo" también.

int? a = null;
int? b = 1;

if (a < b)
    Console.WriteLine("{0} is bigger than {1}", b, a);
else if (a > b)
    Console.WriteLine("{0} is bigger than {1}", a, b);
else
    Console.WriteLine("both {0} and {1} are equal", a, b);

Esperaba que cualquier entero no negativo fuera mayor que nulo, ¿me estoy perdiendo algo aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta