1

先週、若い学生が私にマーシャリングはキャスティングと同じかどうか尋ねました。私の答えは間違いなくノーでした。マーシャリングはシリアル化であり、オブジェクトのメモリ表現をネットワークに送信するためにバイトに変換する方法ですが、キャストは型変換/強制に関連しています。

後で、マーシャリングはキャストの特殊なケースと見なすことができると考えた質問を再考しました。たとえば、メモリ表現の変換が xml にある場合、その xml ファイルの対応する xsd 文法によって定義された型に「キャスト」していると言えます。

これについてあなたはどう思いますか?

4

3 に答える 3

4

キャストはデータ型を変更しません。それが大きな違いです。何かをマーシャリングすると、データが別のものに変換されます。

単純なキャストは、オブジェクトが内部的に何であるかではなく、オブジェクトの解釈方法を変更するだけです。

私は、区別が明確でなければならないことに同意します。

于 2009-05-10T19:25:45.280 に答える
0

マーシャリングは一般に技術境界に関するものです (たとえば、ネットワークを越えたり、マネージド/アンマネージドの場合のように 1 つのメモリ タイプから別のメモリ タイプに移動したりするなど)、キャスティングは一般に同じ技術境界内にあるため、それらは明らかに異なるものだと思います。

両方のアプローチに同じ用語を使用すると、非常に混乱します。つまり、動作が異なるため、異なる定義をする必要があります。

于 2009-05-10T19:21:42.103 に答える
0

どちらも「型変換」ですが、型変換の種類は異なります。キャストは通常​​、関連するオブジェクト型間で行われますが (スーパークラスからサブクラスへのダウンキャストなど)、マーシャリングはオブジェクト グラフなどから行われる場合があります。平文表現に。

于 2009-05-10T19:26:11.207 に答える