¿por qué n.GetHashCode () funciona pero n.GetType () arroja y excepción?

Me estoy enseñando C # (todavía no sé mucho). En este simple ejemplo:

bool?          n = null;

Console.WriteLine("n               = {0}", n);
Console.WriteLine("n.ToString()    = {0}", n.ToString());
Console.WriteLine("n.GetHashCode() = {0}", n.GetHashCode());

// this next statement causes a run time exception

Console.WriteLine("n.GetType()     = {0}", n.GetType());

Intuitivamente, entiendo por qué el método GetType () arrojaría una excepción. La instancia n es nula, lo que explicaría eso, pero ¿por qué no obtengo una excepción por la misma razón cuando uso n.GetHashCode () y ToString ()?

Gracias por tu ayuda

John

Respuestas a la pregunta(1)

Su respuesta a la pregunta