Τί θέλεις να κάνεις? Από αυτό εξαρτάται και η απάντηση αλλά και το αν έχει νόημα η ερώτηση. Γενικά δεν υπάρχει εύκολος τρόπος να βρεις ακριβώς πόση μνήμη πιάνει ένα αντικείμενο καθώς ένα αντικείμενο μπορεί να έχει references σε άλλα. Κατά κανόνα δεν πρέπει να σε ενδιαφέρει πόσο μεγάλο είναι ένα αντικείμενο.
Αν θέλεις να δεις γιατί το πρόγραμμα σου πιάνει πολύ μνήμη θα πρέπει να χρησιμοποιήσεις ένα profiler.
Αν θέλεις να δεις πόσο μεγάλο είναι κάποιο structure, επειδή ίσως θέλεις να το περάσεις σε κάποιo Win32 API, μπορείς να χρησιμοποιήσεις τη sizeof.
Αν θέλεις να κάνεις το ίδιο για μία κλάση, υπάρχει η Marshal.SizeOf, η οποία όμως δεν θα υπολογίσει το μέγεθος άλλων αντικειμένων που μπορεί να συνδέονται με το δικό σου.
Αν θέλεις πειραματικά να δεις πόσο χώρο πιάνει ένα μεγάλο collection ή ένα περίπλοκο αντικείμενο, μπορείς να το κάνεις serialize σε binary μορφή και να δεις το μέγεθος του blob που θα δημιουργηθεί.
Τί θέλεις να κάνεις?
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos