Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top