我知道数据成员已保存到磁盘,但我想知道对象/类的方法是否也以二进制格式保存?因为我发现了一些矛盾信息,例如:
Ivor Horton:“类对象包含函数成员和数据成员,所有成员(数据和函数)都有访问说明符;因此,要在外部文件中记录对象,写入的信息文件必须包含所涉及的所有类结构的完整规范。“
和
Are methods also serialized along with the data members in .NET?
因此:方法的汇编指令(操作码和操作数)是否也存储在磁盘上?就像预编译的LIB或DLL一样?在DOS时代,我偶尔使用汇编。
据我记得德尔福和以下网站(dan04回答):
Are methods also serialized along with the data members in .NET?
sizeof(<OBJECT or CLASS>)
将所有数据成员的大小放在一起(没有方法/程序)。还有一个很好的C示例,其中数据和成员在一个类/结构中声明,但在运行时,这些方法是作用于数据结构的独立过程。但是,我认为后来的类/对象实现(如Pascal的VMT)在内存中可能会有所不同。
答案 0 :(得分:1)
不,方法已保存。
只有能够将对象恢复到以前状态所需的信息。
因此将保存任何值字段和prop(假设您使用的是二进制序列化程序),但在任何情况下都不会使用这些方法。