Gra*_*een 12 c# class separator
班级名称: MyAssembly.MyClass+MyOtherClass
问题显然是+作为分隔符,而不是传统点,它的功能,并找到官方文档,看看是否存在其他分隔符.
Jon*_*eet 20
这就是表示嵌套类型的方式.例如:
namespace Foo
{
class Outer
{
class Nested {}
}
}
Run Code Online (Sandbox Code Playgroud)
将Foo.Outer+Nested在编译的代码中创建一个全名的类型.(typeof(Outer.Nested).FullName例如,这就是返回的东西.)
我不清楚这是指定的行为,还是Microsoft C#编译器选择使用的行为; 它是一个"不可言喻"的名称,因为你无法在普通的C#中明确地声明一个带有+的类,所以编译器知道它不会与其他任何东西冲突.据我所知,C#3规范的第10.3.8节没有规定编译的名称.
编辑:我刚刚看到,Type.AssemblyQualifiedName指定"+"用于嵌套类型名称之前...但它仍然不清楚是否实际需要或只是常规.
Ben*_*igt 10
这是编译器在元数据中用来表示嵌套类的内容.
即
class A { class B {} }
Run Code Online (Sandbox Code Playgroud)
会被视为
class A+B
Run Code Online (Sandbox Code Playgroud)
在元数据中