Por que nameof (objeto) não é permitido?

No C # 6.0, você pode escrever isso:

var instance = default(object);
var type = typeof(object);

Eles têm o mesmo resultado de:

var instance = default(System.Object);
var type = typeof(System.Object);

Mas você não pode escrever isso:

var name = nameof(object);

Ele gera o seguinte erro:

Termo de expressão inválido 'objeto'.

Mas você ainda pode escrever isso:

var name = nameof(System.Object);

Por quênameof(object) não compila?

questionAnswers(1)

yourAnswerToTheQuestion