2009-05-14 6 views
2

Existe-t-il un moyen d'obtenir la taille d'une instance (ou la classe que je ne me dérange pas) en C#? Par exemple, je sais que dans Delphi chaque objet a un pointeur vers la table de méthode virtuelle de la classe, un pointeur pour chaque interface qu'il implémente plus bien sûr les champs de la classe.Taille de l'instance en C#

Selon this la taille de base de l'objet est de 12 octets en x86, mais existe-t-il une "règle" pour le dimensionner correctement?

+1

Juste curieux: pourquoi? À quoi allez-vous l'utiliser? –

+2

Dupliquer: http://stackoverflow.com/questions/207592/getting-the-size-of-a-field-in-bytes-with-c#207605 –

+0

Donc, il n'y a aucun moyen de le calculer "theroretically", juste par mesurer avec le GC? –

Répondre

3

Cela dépend de ce que vous cherchez à faire. Si vous souhaitez connaître la taille d'un type/objet dans le but d'interopérer avec du code natif, vous pouvez utiliser Marshal.SizeOf(). A part ça, il n'y a pas de façon définitive de mesurer la taille d'un objet.

Questions connexes