.NET
でオブジェクトの深いコピーを達成します この記事では、.NETフレームワーク内でオブジェクトの深いコピーを作成するという課題に対処し、Javaの固有のディープコピー機能に匹敵するソリューションを提供します。 解決策:一般的なユーティリティ方法は、深いコピーへの簡単なアプローチを提供します:
<code class="language-csharp">public static T DeepClone<T>(this T obj) { using (var ms = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(ms, obj); ms.Position = 0; return (T)formatter.Deserialize(ms); } }</code>批判的な考慮事項:
この方法で採用されている
が廃止され、.NETからの除去が予定されていることを認めることが重要です。 将来の互換性のための代替ディープコピー戦略を探索しますBinaryFormatter
実装の詳細:
この方法を利用するには、クラスが属性でマークされていることを確認してください。 必要な名前空間を含めてください:
[Serializable]
メカニズム:
<code class="language-csharp">using System.Runtime.Serialization.Formatters.Binary; using System.IO;</code>
プロセスには、2つの重要な手順が含まれます
シリアル化:入力オブジェクトは
を使用してシリアル化され、メモリストリームに保存されています。BinaryFormatter
以上が.NETでオブジェクトを深くコピーする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。