Avatar ·

Tiefes Klonen von Objekten in C#: Wie erstelle ich eine vollständige Kopie?

Hallo zusammen! Ich bin neu in C# und habe ein Problem beim Kopieren von Objekten. Ich habe eine Klasse, die Referenztypen enthält (z.B. Listen und andere Klassen). Wenn ich eine Instanz einer anderen zuweise, wirken sich Änderungen in der Kopie auf das Original aus. Ich möchte eine vollständig unabhängige Kopie des Objekts erstellen, damit ich sie ändern kann, ohne die ursprünglichen Daten zu verändern. Hier ist ein Beispielcode, der das Problem zeigt: ```csharp public class Person { public string Name { get; set; } public List Hobbies { get; set; } } public class Program { public static void Main() { Person original = new Person { Name = "Ivan", Hobbies = new List { "Lesen", "Schwimmen" } }; Person shallowCopy = original; // Dies ist eine flache Kopie shallowCopy.Name = "Peter"; shallowCopy.Hobbies.Add("Laufen"); Console.WriteLine(original.Name); // Gibt "Ivan" aus (Name hat sich nicht geändert) Console.WriteLine(string.Join(", ", original.Hobbies)); // Gibt "Lesen, Schwimmen, Laufen" aus (die Liste wurde geändert) } } ```