2010-11-22 40 views
1

Lorsque vous consultez mscorlib.dll via Object Browser dans Visual Studio 2008, l'EDI indique qu'Int64 (ainsi que les autres types de données) possède un type de base ValueType. En C#, je suis conscient que les structures (dont Int64 est) ne supportent pas l'héritage d'objet. J'ai même vérifié les métadonnées de type d'un assembly dans lequel j'ai déclaré une propriété System.Int64 d'une classe, et il n'y avait aucune indication de Int64 prolongeant des classes. Les structures peuvent étendre les interfaces, et j'en suis conscient..NET C#: System.Int64 at-il un type de base de System.ValueType?

Je suis confus sur pourquoi la structure Int64 affiche un BaseType de ValueType.

Quelqu'un pourrait-il expliquer?

d alt text

Répondre

3

Tous les types de valeurs héritent implicitement System.ValueType.

+0

Je pensais que les structures ne pouvaient hériter d'autre chose que System.Object? (http://msdn.microsoft.com/en-us/library/ah19swz4(VS.71).aspx) – contactmatt

+0

@contactmatt: Jetez un oeil à la réponse acceptée ici: http://stackoverflow.com/questions/1682231/how-do-valuetypes-dériver-de-object-referencetype-et-still-be-valuetypes/1682604 # 1682604 – LukeH

+0

@LukeH - Donc la documentation MSDN ci-dessus est fausse? Comme il ressort du lien MSDN ci-dessus: "Il n'y a pas d'héritage pour les structures comme pour les classes: une structure ne peut pas hériter d'une autre structure ou classe, et elle ne peut pas être la base d'une classe. Objet." – contactmatt