浅いコピー

著者: Lewis Jackson
作成日: 8 5月 2021
更新日: 25 六月 2024
Anonim
Python入門 浅いコピーと深いコピー
ビデオ: Python入門 浅いコピーと深いコピー

コンテンツ

定義-浅いコピーとはどういう意味ですか?

C#のシャローコピーは、元のオブジェクトと同じ型の新しいインスタンスをインスタンス化し、既存のオブジェクトの非静的メンバーをクローンにコピーすることにより、オブジェクトのクローンを作成するプロセスです。値型のメンバーはビット単位でコピーされ、参照型のメンバーはコピーされて、参照されるオブジェクトとそのクローンが同じオブジェクトを参照するようになります。


一般的に、浅いコピーは、アプリケーション全体でオブジェクトが変更されないという条件とともに、パフォーマンスが要件の1つである場合に使用されます。不変データを含むクローンを渡すことにより、コードによる破損の可能性が排除されます。浅いコピーは、オブジェクト参照がメモリアドレスによってオブジェクトを渡すことができるため、オブジェクト全体をコピーする必要がない場合に効率的であることがわかります。

浅いコピーは、メンバーごとのコピーとも呼ばれます。

Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。

TechopediaはShallow Copyについて説明します

浅いコピーは、オブジェクトの各メンバーの別のオブジェクトへの割り当てにおけるディープコピーに似ていますが、参照タイプのフィールドのコピー方法が異なります。参照のみがコピーされるシャローコピーとは異なり、ディープコピーでは、参照されるオブジェクトの新しいコピーが作成されます。

たとえば、複数の従業員の住所を格納する住所オブジェクトのリストなど、個人情報の詳細を含む従業員オブジェクトを考えます。従業員オブジェクトの浅いコピーを実行することにより、元の従業員オブジェクトが所有する住所オブジェクトの同じリストへの参照を使用して、従業員オブジェクトのクローンを作成できます。

浅いコピーを実行する方法は次のとおりです。
  • オブジェクトのMemberwiseCloneメソッドを呼び出します
  • 退屈ではあるが制御が容易なカスタムメソッドを使用してクローンを手動で作成する
  • 自動化機能を提供するリフレクション技術を使用して、浅いコピーを実行しますが、パフォーマンスのオーバーヘッドがあります
  • リフレクションよりも遅いが、自動化されたシンプルなシリアル化方法を使用する
頻繁に変更される参照タイプのメンバーがオブジェクトにある場合、浅いコピーは使用できません。 この定義はC#のconで書かれています