为什么不允许(对象)的名称



在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);

生成以下错误:

无效表达式term 'object'。

但是你仍然可以这样写:

var name = nameof(System.Object);

为什么nameof(object)不能编译?

不同之处在于objectObject类的同义词,而nameof()不起同义词作用。

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

最新更新