9

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

它会产生以下错误:

无效的表达式术语“对象”。

但是你仍然可以这样写:

var name = nameof(System.Object);

为什么nameof(object)不编译?

4

1 回答 1

14

不同之处在于它object是类的同义词,Object不适nameof()用于同义词。

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

于 2016-11-04T11:58:42.400 回答