Genau so wird ein verschachtelter Typ dargestellt. Also zum Beispiel:
%Vor% erstellt einen Typ mit dem vollständigen Namen von Foo.Outer+Nested
im kompilierten Code. (So würde zum Beispiel typeof(Outer.Nested).FullName
zurückkehren.)
Es ist mir nicht klar, ob dies spezifiziertes Verhalten ist oder nur, was der Microsoft C # -Compiler wählt; Es ist ein "unaussprechlicher" Name, weil Sie eine Klasse mit einem + darin in normalen C # nicht explizit deklarieren können, so dass der Compiler weiß, dass es mit nichts anderem kollidieren wird. Abschnitt 10.3.8 der C # 3-Spezifikation diktiert den kompilierten Namen nicht, soweit ich sehen kann.
EDIT: Ich habe gerade gesehen, dass Type.AssemblyQualifiedName
das angibt "+" wird verwendet, um einem verschachtelten Typnamen voranzukommen ... aber es ist immer noch nicht klar, ob dies tatsächlich erforderlich oder nur konventionell ist.