2012-03-24 7 views
1

Ich weiß, dass Datenelemente auf der Festplatte gespeichert werden, aber ich frage mich, ob die Methoden von Objekt/Klasse auch im Binärformat gespeichert werden? Weil ich einige widersprüchliche Informationen gefunden habe, zum Beispiel:Object/Class-Methoden auch serialisiert?

Ivor Horton: "Klassenobjekte enthalten Funktionselemente sowie Datenelemente und alle Mitglieder, sowohl Daten als auch Funktionen, verfügen über Zugriffsbezeichner, um Objekte zu erfassen eine externe Datei, muss die in die Datei geschriebene Information vollständige Spezifikationen aller beteiligten Klassenstrukturen enthalten. "

und:

Are methods also serialized along with the data members in .NET?

Somit: sind Verfahren der Montageanleitung (Opcodes und Operanden), als auch auf der Festplatte gespeichert ist? Genau wie eine vorkompilierte LIB oder DLL? Während der DOS-Zeitalter verwendete ich die Assembly also hin und wieder.

Soweit ich von Delphi und der folgenden Website (Antwort von dan04) erinnern:

Are methods also serialized along with the data members in .NET?

sizeof(<OBJECT or CLASS>) wird die Größe aller Datenelemente zusammen (keine Methoden/Verfahren) geben. Dort wird auch ein nettes C-Beispiel mit Daten und Membern angegeben, die in einer Klasse/Struktur deklariert sind, aber zur Laufzeit sind diese Methoden separate Prozeduren, die auf eine Struktur von Daten einwirken. Ich denke jedoch, dass spätere Klassen-/Objekt-Implementierungen wie Pascals VMT im Speicher unterschiedlich sein können.

+0

mögliches Duplikat von [Sind Methoden auch zusammen mit den Datenmembern in .NET serialisiert?] (Http://stackoverflow.com/questions/2767893/are-methods-alsoserialized-along-with-the-data- members-in-net) – EJP

+0

Die Frage wird in diesem Link beantwortet. – EJP

Antwort

1

Nein, die Methoden werden gespeichert.

Nur die Informationen, die erforderlich sind, um die Objekte in ihren vorherigen Status wiederherstellen zu können.

Also jedes Wert Feld und Prop wird gespeichert (vorausgesetzt, Sie verwenden binäre Serializer), aber in keinem Fall werden die Methoden sein.