1

上周一个年轻的学生问我编组和选角是否一样。我的回答肯定是不。编组是序列化,将对象的内存表示转换为字节以便传输到网络的方法,而强制转换与类型转换/强制有关。

后来,重新思考这个问题,我认为编组可以看作是铸造的一种特殊情况。例如,内存表示的转换是在 xml 中,那么可以说您正在“转换”为该 xml 文件的相应 xsd 语法定义的类型。

你怎么看待这件事?

4

3 回答 3

4

强制转换不会修改数据类型。这是一个主要区别。当您编组某些内容时,您正在将数据转换为其他内容。

一个简单的转换只会改变你解释对象的方式,而不是对象内部的内容。

我同意区分应该清楚,否则不熟悉的人可能会感到困惑。

于 2009-05-10T19:25:45.280 回答
0

编组通常与技术边界有关(例如,在托管/非托管的情况下,跨越网络或从一种内存类型到另一种内存类型),而强制转换通常在相同的技术边界内,因此我认为它们绝对是不同的东西。

如果我们对这两种方法使用相同的术语,这将非常令人困惑,这意味着我们需要对它们进行不同的定义,因为它们具有不同的行为。

于 2009-05-10T19:21:42.103 回答
0

它们都是“类型转换”,但是,它们是不同类型的类型转换:转换通常在相关对象类型之间进行(例如,从超类向下转换到子类),而编组可能来自例如对象图为纯文本表示。

于 2009-05-10T19:26:11.207 回答