No puedo encontrar las relaciones entre estos tipos usando .Net reflector. ¿Alguna idea?Dónde saber/comprobar: Int32 hereda de ValueType, ValueType hereda de Object?
Respuesta
Dado que usted dice "usando .Net reflector":
Si quería reflexión:
Type type = typeof (int);
while(type != null)
{
Console.WriteLine(type.FullName);
type = type.BaseType;
}
que muestra:
System.Int32
System.ValueType
System.Object
y si se refiere a la IL:
.class public sequential ansi serializable sealed beforefieldinit Int32
extends System.ValueType
y:
.class public abstract auto ansi serializable beforefieldinit ValueType
extends System.Object
(en el reflector, seleccione el nodo del tipo y seleccione IL como la vista)
Si se refiere a la # vista C, entonces:
public struct Int32 ...
es suficiente; la palabra clave struct
significa: hereda de ValueType
(aunque no del todo en el modo habitual C# class
). ValueType
sigue siendo una clase regular, y tiene:
public abstract class ValueType ...
y como de costumbre, una class
que no especifica un tipo de base significa: hereda de object
.
Me refiero a la vista C#. Todo está claro ahora. Gracias Marc por dar diferentes enfoques, que es genial. – user1033098
+1 para explicar diferentes formas posibles. – Adil
- 1. Django Model Mixins: hereda de models.Model or from object?
- 2. ¿Por qué Object incluye Kernel y lo hereda en Ruby?
- 3. Ruby hereda la clase
- 4. Iframe hereda del padre
- 5. Qt que hereda de QGraphicsEllipseItem
- 6. ¿Cuál es la diferencia entre GetHashCode implementado en Object y ValueType class?
- 7. ¿Modificar ValueType desde el método de extensión? Hace
- 8. ¿Cómo distinguir que un tipo es ValueType O RefereceType?
- 9. ¿Hereda y reemplaza funciones de std :: string?
- 10. ¿Por qué NSOrderedSet hereda de NSSet?
- 11. ¿Por qué FormatException no hereda de ArgumentException?
- 12. privada o públicamente hereda de boost :: non_copyable?
- 13. Nulo ControllerContext en mi controlador personalizado que hereda de BaseController
- 14. Scala REPL incorporado hereda classpath padre
- 15. La vista parcial hereda del diseño principal
- 16. hereda el archivo xib en Interface Builder
- 17. ¿La amistad se hereda en C++?
- 18. hereda "font-family" en SELECT/OPCIÓN
- 19. Burlarse de una clase que hereda de otra clase
- 20. Tema de Android XML que hereda de dos temas principales?
- 21. Unidad probando una clase que hereda de una clase abstracta
- 22. ¿File.Move no hereda los permisos del directorio de destino?
- 23. ¿Por qué IEnumerable <T> hereda de IEnumerable?
- 24. ¿Hereda de una clase base que implementa INotifyPropertyChanged?
- 25. C++ plantilla especializada hereda de la versión no especializada
- 26. genérico Clase base que hereda de la interfaz genérica
- 27. RVM: crea un gemset que no hereda de global?
- 28. Averiguar si Delphi ClassType hereda de otro ClassType?
- 29. DataContractSerializer miembro de la clase que hereda ISerializable
- 30. ¿Cómo se llama cuando una interfaz "hereda" de otra?
Una buena pregunta, soy interesante también, pero creo que no se puede ver en el reflector porque solo las palabras clave como scruct o enum definen el tipo como valor para el compilador. –
@Denis puede verlo en IL, C# y el árbol ... –
el buscador de objetos en VS también debería darle la misma información ... –