Esistono otto diversi valori enumerati per System.Reflection.MemberTypes. Cinque mappe direttamente su specifiche classi MemberInfo (ConstructorInfo, MemberInfo, ecc.). MemberTypes.NestedType può essere pensato come Type piuttosto che come MemberInfo. Sto cercando di capire (1) MemberTypes.Custom e (2) MemberTypes.TypeInfo membri. Qualcuno ha un esempio di tali membri?Un esempio di membro MemberTypes.Custom e MemberTypes.TypeInfo
risposta
public class Foo
{
public class Bar { }
}
Con queste due classi il seguente sarà vero.
typeof(Foo).MemberType == MemberTypes.TypeInfo
typeof(Foo.Bar).MemberType == MemberTypes.NestedType
Sia TypeInfo
e NestedType
indicano che avete a che fare con un tipo con la distinzione se il tipo è annidato o meno. Il valore di enumerazione TypeInfo
si limita alla convenzione di denominazione mentre il sottotipo effettivo di MemberInfo
è Type
. Da un lato Type
avrebbe dovuto essere chiamato TypeInfo
per attenersi alla convenzione di denominazione, d'altra parte sembra un po 'discutibile che Type
sia derivato da MemberInfo
in primo luogo. Ma è proprio così. Forse il membro in MemberInfo
dovrebbe essere meglio compreso come membro assembly o type invece di solo member member.
Da .NET 4.5 esiste una nuova sottoclasse TypeInfo
che eredita da Type
e accessibile tramite Type.GetTypeInfo()
extension method; vedere lì per la distinzione.
Non sono sicuro di MemberTypes.Custom
ma guardando CLI specification, in particolare II.10.2, è possibile che si tratti di attributi personalizzati o di altri dati personalizzati associati a un tipo. Guardando allo .NET reference source code non si ottengono ulteriori informazioni.
- 1. Riferimento `self` nella dichiarazione di membro Swift esempio
- 2. Esempio di un esempio di bridge
- 3. cos'è un membro e una proprietà
- 4. Membro di riferimento aggregato e durata temporanea
- 5. La struttura con un singolo membro ha le stesse prestazioni di un tipo membro?
- 6. Esempio jQuery e history.js
- 7. Esempio NSOutlineView e NSTreeController
- 8. Ordine di costruttori membro e chiamate distruttore
- 9. Esempio di threading semplice esempio
- 10. Perfetto inoltro di un membro di oggetto
- 11. Viene utilizzato un esempio pratico di LockSupport e AbstractQueuedSynchronizer?
- 12. inizializzazione di un membro statico all'interno di un modello di
- 13. Esempio di Squire.js con Jasmine e RequireJS
- 14. Esempio di gorgogliamento e cattura in React.js
- 15. 'round' non è un membro di 'std'
- 16. Utilizzo di FFMPEG e url_fopen esempio
- 17. Esempio semplice di Celery e Django
- 18. Esempio di waitpid, WNOHANG e SIGCHLD
- 19. Esempio semplice e funzionante di Quartz.net
- 20. wx haskell Esempio di trascinamento e rilascio
- 21. Funzione membro statica e sicurezza thread
- 22. non può ignorare un membro di cemento senza un terzo membro che è ignorata da entrambi
- 23. Come estendere un campo membro di base?
- 24. È possibile utilizzare la dimensione di un membro quando si dichiara un altro membro?
- 25. Un buon esempio di utilizzo di libpurple?
- 26. Funzioni membro non membro vs Python
- 27. Dichiarare un membro di tipo anonimo con un nome semplice
- 28. Hai bisogno di un esempio di UILocalNotifications
- 29. 'Forms' non è un membro di 'Windows'
- 30. const_cast di un membro const statico
Per TypeInfo - hai capito che 'System.Type: System.Reflection.MemberInfo'? –