C#的序列化问题

2025-12-17 23:31:58
推荐回答(5个)
回答1:

给LZ打个比方 一个人有眼睛 耳朵 鼻子 嘴
这就相当于属性
一个人的实例就是包括了这些属性 当然实例中的属性是没有序可言的
但当你用本和笔记录一个人的模样时 你一定会按一定的顺序去记录 这个记录的过程就叫做序列化 所以引伸出以下定义:
序列化就是把一个对象(实例)的属性保存到一个文件或数据库表中(亦可以是内存中的串行)

这样来说LZ就应该好理解什么是序列化 序列化的意义何在了吧?
然后是LZ的问题 成员函数(实体的方法)可不可以序列化

根据以上定义 方法该如何进行序列化? 把方法保存到数据库表中? 有何意义?
所以说 方法是不可能序列化的 因为方法是一个过程 而不是一种状态

再打个比方:
你看到一个人 你想要记住他 那就需要记住他的特征: 他的眼睛是蓝色的 鼻子很高 嘴很大
但你不会去记 他吃饭 他走路 他睡觉 因为这些是动作 而不是状态 动作是所有实例通用的 所以不用去记录 也就不需要被序列化

所以得出结论: 成员函数不可以序列化 说得更贴切一点 成员函数不需要被序列化

回答2:

序列化意思指的是把对象的当前状态进行持久化,一个对象的状态在面向对象的程序中是由属性表示的,所以序列化的时候是从属性读取值以某种格式保存下来
不存在序列化成员函数,函数代表一个对象的操作,一种定义,他是一个动作并不代表状态
.net存在几种默认提供的序列化,二进制序列化会序列化对象的字段,包括私有字段,xml和json序列化会序列化所有的实例共有属性。

回答3:

序列化意思指的是把对象的当前状态进行持久化,一个对象的状态在面向对象的程序中是由属性表示的,所以序列化的时候是从属性读取值以某种格式保存下来

不存在你说的序列化成员函数,函数代表一个对象的操作,一种定义,他是一个动作并不代表状态

.net存在几种默认提供的序列化,二进制序列化会序列化对象的字段,包括私有字段,xml和json序列化会序列化所有的实例共有属性

回答4:

序列化就好比一个房子,而对象就好比人,人可以吃饭,可以睡觉。

而吃饭和睡觉就好比方法。

你可以让房子里的人吃饭,但是你不能说房子里住着吃饭,所以,不行

回答5:

可以,序列化后有一个getMethod()方法