why n.GetHashCode () funciona, mas n.GetType () lança e exceção?

Estou me ensinando C # (ainda não sei muito). Neste exemplo simples:

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, eu entendo por que o método GetType () lançaria uma exceção. A instância n é nula, o que explicaria isso, mas, por que não recebo uma exceção pelo mesmo motivo ao usar n.GetHashCode () e ToString ()?

Obrigado pela ajuda

John

questionAnswers(1)

yourAnswerToTheQuestion