为什么不允许使用nameof(object)?

时间:2016-11-04 11:49:35

标签: c# c#-6.0 nameof

在C#6.0中你可以这样写:

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

他们有相同的结果:

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

但你不能这样写:

var name = nameof(object);

它会产生以下错误:

  

无效的表达术语' object'。

但你仍然可以这样写:

var name = nameof(System.Object);

为什么nameof(object)无法编译?

1 个答案:

答案 0 :(得分:14)

区别在于object是类Object的同义词,nameof()不适用于同义词。

同样适用于nameof(int) vs nameof(Int32)