Erstellen Sie eine Kopie eines Objekts in C#

Google Translate Icon

In diesem Beitrag wird erläutert, wie Objekte in C# kopiert werden.

Beim Kopieren eines Objekts wird eine Kopie eines vorhandenen Objekts erstellt. Dies geschieht normalerweise, um die Kopie zu ändern oder zu verschieben, ohne das ursprüngliche Objekt zu beeinträchtigen.

1. Verwenden Object.MemberwiseClone() Methode

Das Object.MemberwiseClone() -Methode kann verwendet werden, um eine flache Kopie des aktuellen Objekts zu erstellen. Beziehen Sie sich auf die Microsoft-Dokumentation um eine tiefe Kopie mit der zu implementieren MemberwiseClone() Methode.

Das folgende Beispiel führt einen flachen Kopiervorgang für das Objekt von X mit der aus MemberwiseClone() Methode.

Herunterladen  Code ausführen

2. Konstruktor kopieren

Der Kopierkonstruktor übernimmt eine weitere Instanz derselben Klasse und definiert die Aktionen des Compilers beim Kopieren des Objekts. Die Implementierung des Kopierkonstruktors sollte eine tiefe Kopie für alle referenzierten Objekte in der Klasse durchführen, indem neue Objekte erstellt und die Werte des unveränderlichen Typs kopiert werden.

Das folgende Codebeispiel zeigt, wie die Kopierkonstruktormethode implementiert wird. Es implementiert auch eine statische Copy-Factory-Methode, die im Wesentlichen dasselbe tut wie die Copy-Constructor-Methode.

Herunterladen  Code ausführen

 
Das Problem bei den Kopierkonstruktoren ist ihre Wartung, dh wenn ein Objekt strukturell verändert wird, müssen Sie den Kopierkonstruktor modifizieren.

3. Tiefer Klon

Das folgende Codebeispiel veranschaulicht, wie das tiefe Klonen durch BinaryFormatter implementiert wird Serialize() und Deserialize() Methoden. Damit dies funktioniert, markieren Sie Ihre Klasse als serialisierbar durch [Serializable].

Herunterladen  Code ausführen

Das ist alles über das Erstellen einer Kopie eines Objekts in C#.

Bewerte diese Nachricht

Durchschnittliche Bewertung 3.92/5. Stimmenzahl: 13

Bisher keine Stimmen! Seien Sie der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass dieser Beitrag für Sie nicht hilfreich war!

Sagen Sie uns, wie wir diesen Beitrag verbessern können?




Danke fürs Lesen.

Bitte nutzen Sie unsere Online-Compiler um Code in Kommentaren mit C, C++, Java, Python, JavaScript, C#, PHP und vielen weiteren gängigen Programmiersprachen zu posten.

Wie wir? Empfehlen Sie uns Ihren Freunden und helfen Sie uns zu wachsen. Viel Spaß beim Codieren :)



Abonnieren
Benachrichtigen von
guest
4 Kommentare
Am meisten gewählt
Neueste Älteste
Inline-Feedbacks
Alle Kommentare anzeigen
Folgen Sie diesem Link NICHT, sonst werden Sie von der Seite ausgeschlossen!