Ho notato qualcosa di curioso quando si scherzava con classi nidificate e si trasmetteva il nome del tipo in una finestra della console. Mi stavo chiedendo se qualcuno potesse spiegarlo un po 'per me. Quando si chiama GetType()
sulla classe principale, restituisce ciò che mi aspetto, che era il nome della classe dopo gli spazi dei nomi rilevanti. cioè Namespace.Namespace.Classname
Classe nidificata .GetType()
Tuttavia, quando chiamo una funzione all'interno della classe contenitrice per restituire il tipo della classe annidata ho ottenere il valore restituito come questo:
Namespace.Namespace.ClassNameEnclosing + ClassNameNested.
Perché non è semplicemente restituito come notazione punto . Perché il simbolo +? Sono solo curioso di sapere cosa sta succedendo in background che causa questa notazione.
Grazie per la risposta. Lo vedo anche se la classe è una classe a sé stante e non ha un proprio spazio dei nomi? Il simbolo più afferma fondamentalmente che questo tipo è un'aggiunta allo spazio dei nomi della classe che racchiude? – CSharpened
@CSharpened: Sì, questo è il suo spazio dei nomi - se si guarda lo spazio dei nomi di (say) 'System.Collections.Generic.SortedDictionary .ValueCollection', si troverà semplicemente' System.Collections.Generic'. –
Ottima risposta. Grazie. Questo lo rende molto chiaro. – CSharpened