Une estimation approximative peut être faite, et le suivi de la mémoire utilisée via profilig devrait également être possible. Mais le JIT a la liberté de configurer la mise en page du type qui convient le mieux, qui peut aussi dépendre de la version du framework, de la configuration de la machine (en particulier 32bit vs. 64bit), du framework provider (MS, Mono, GNU.NET etc.) etc.
il calcul à l'avance sera semblable à ceci:
les références sont 32bit ou 64bit selon la plate-forme
une instance de classe a une référence interne aux informations de type (qui comprend VTable etc.), plus une référence pour chaque type de référence contenu (y compris les chaînes ou les tableaux), plus la mémoire Utilisé par toutes les structures (celles-ci peuvent être mises en page pour que l'accès soit efficace, en laissant en fait de la mémoire inutilisée).
La question est aussi, voulez-vous obtenir la mémoire utilisée par la classe ou par la classe et les données associées (comme les chaînes, les tableaux, listes, etc. dictionatries dans les champs)?
Je crois qu'il s'agit d'un doublon efficace de http://stackoverflow.com/questions/207592/getting-the-size-of-a-field-in-bytes-with-c#207605 –
Oui, je suis d'accord, bien que J'ai cherché SO pour cette question et je n'ai trouvé aucun résultat (j'ai été surpris que cela n'ait pas déjà été demandé). Je dirais que la question est mal intitulée, elle devrait probablement être optimisée pour faciliter la recherche. –