Маршаллинг и кастинг. Они связаны? - PullRequest
1 голос
/ 10 мая 2009

На прошлой неделе молодой студент спросил меня, является ли сортировка такой же, как кастинг. Мой ответ был определенно нет. Маршаллинг это серализация, способ трансформировать представление в памяти объекта в байтах для передачи в сеть, тогда как приведение связано с преобразованием типов / принуждением.

Позже, переосмысливая вопрос, мне показалось, что сортировка может рассматриваться как особый случай приведения. Например, преобразование представления памяти в xml, тогда можно сказать, что вы «приводите» к типу, определенному соответствующей грамматикой xsd этого xml-файла.

Что вы думаете об этом?

Ответы [ 3 ]

3 голосов
/ 10 мая 2009

Приведение не изменяет тип данных. Это главное различие. Когда вы что-то маршалируете, вы превращаете данные во что-то другое.

Простое приведение изменяет только то, как вы интерпретируете объект, а не то, чем он является внутри.

Я согласен, что различие должно быть четким, иначе незнакомые люди могут быть сбиты с толку.

0 голосов
/ 10 мая 2009

Они оба являются «преобразованием типов», но это разные виды преобразования типов: приведение обычно происходит между связанными типами объектов (например, преобразование из суперкласса в подкласс), тогда как сортировка может происходить, например, из граф объектов в текстовом представлении.

0 голосов
/ 10 мая 2009

Маршаллинг, как правило, связан с технологической границей (например, переход по сети или из одного типа памяти в другой, как в случае управляемого / неуправляемого), тогда как приведение обычно в пределах одной технологической границы, поэтому я думаю, что это определенно разные вещи.

Было бы крайне запутанным, если бы мы использовали один и тот же термин для обоих подходов, означая, что нам нужно будет определять их по-разному, так как они ведут себя по-разному.

...