Im Gegensatz zu Java erfordert das Erreichen einer echten tiefen Kopie eines Objekts in .NET einen anderen Ansatz. Dieser Leitfaden beschreibt effektive Methoden zum Erstellen von tiefen Kopien.
Die BinaryFormatter
-Klasse bietet eine robuste Lösung für das tiefe Kopieren in C#. Diese Serialisierungsklasse wandelt ein Objekt in einen Binärstrom um, der dann deserialisiert wird, um eine neue, unabhängige Objektinstanz zu erzeugen.
Eine generische Dienstprogrammmethode vereinfacht den tiefen Klonierungsprozess:
<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>
Die Zielklasse muss mit dem Attribut [Serializable]
dekoriert werden.
Stellen Sie sicher
using
<code class="language-csharp">using System.Runtime.Serialization.Formatters.Binary; using System.IO;</code>
Das obige ist der detaillierte Inhalt vonWie führe ich eine tiefe Kopie von Objekten in .NET aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!