методы объекта / класса также сериализованы? - PullRequest
1 голос
/ 24 марта 2012

Я знаю, что члены данных сохраняются на диск, но мне было интересно, сохраняются ли методы объекта / класса также в двоичном формате?Потому что я нашел противоречивую информацию, например:

Ivor Horton: "Объекты класса содержат элементы функций, а также элементы данных, и все члены, как данные, так и функции, имеют спецификаторы доступа, поэтомудля записи объектов во внешний файл информация, записанная в файл, должна содержать полные спецификации всех задействованных структур классов. "

и:

Являются ли методы также сериализованнымивместе с членами данных в .NET?

Таким образом: инструкции по сборке метода (коды операций и операнды) также сохраняются на диске?Прямо как скомпилированная LIB или DLL?В эпоху DOS время от времени я использовал ассемблер.

Насколько я помню из Delphi и следующего сайта (ответ от dan04):

Методы также сериализованы вместе счлены данных в .NET?

sizeof(<OBJECT or CLASS>) будут давать размер всех элементов данных вместе (без методов / процедур).Также приводится хороший пример C с данными и членами, объявленными в одном классе / структуре, но во время выполнения эти методы являются отдельными процедурами, воздействующими на структуру данных.Однако я думаю, что более поздние реализации классов / объектов, такие как VMT Паскаля, могут отличаться в памяти.

1 Ответ

1 голос
/ 25 марта 2012

Нет, методы сохранены.

Только информация, необходимая для того, чтобы можно было восстановить объекты до их прежних состояний.

Таким образом, любое поле значения и реквизит будут сохранены (при условии, что вы используете двоичный сериализатор), но ни в коем случае методы не будут.

...