嵌套类.GetType()

CSh*_*ned 7 c# types nested-class

在弄乱嵌套类并将类型名称输出到控制台窗口时,我注意到了一些好奇.我想知道是否有人可以为我解释一下.当调用GetType()主类时,它返回我期望的内容,即相关名称空间后的类的名称.即Namespace.Namespace.Classname

但是,当我从封闭类中调用一个函数来返回嵌套类的类型时,我得到返回的值,如下所示:

Namespace.Namespace.ClassNameEnclosing + ClassNameNested.
Run Code Online (Sandbox Code Playgroud)

为什么它不是简单地以点符号返回.为什么+符号?我只是好奇在后台发生了什么导致这种表示法.

Jon*_*eet 5

点用于表示名称空间.嵌套类仍然在同一个命名空间中,它只是嵌套在一个类中.

我不能随意(从对ECMA-335的简短研究中)判断一个包含点的不合格类型名称在IL中是否实际有效; 我怀疑它会,但它会使各种诊断难以阅读.