班级名称:MyAssembly.MyClass+MyOtherClass
问题显然是+
作为分隔符,而不是传统的点,它的作用,并查找官方文档,看看其他分隔符是否存在。
这就是嵌套类型的表示方式。例如:
namespace Foo
{
class Outer
{
class Nested {}
}
}
将创建一个全名为的类型Foo.Outer+Nested
在编译的代码中。 (所以这就是typeof(Outer.Nested).FullName
例如,会返回。)
我不清楚这是否是指定的行为,或者 Microsoft C# 编译器选择使用的行为;这是一个“难以形容”的名称,因为您无法在普通 C# 中显式声明带有 + 的类,因此编译器知道它不会与其他任何内容发生冲突。据我所知,C# 3 规范的第 10.3.8 节并未规定编译名称。
编辑:我刚刚看到Type.AssemblyQualifiedName http://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname.aspx指定“+”用于嵌套类型名称之前...但仍不清楚这是否实际上required或者只是传统的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)