static void Main(string[] args) { //Erstellung von Objekten PersonC KlassenPerson = new PersonC("Anna", 29); PersonS StructPerson = new PersonS("Otto", 29); //Ausgabe Console.WriteLine($"{KlassenPerson.name}: {KlassenPerson.alter}"); Console.WriteLine($"{StructPerson.name}: {StructPerson.alter}"); //Funktionsaufruf Altern(KlassenPerson); Altern(StructPerson); //Erneute Ausgabe: Nur das Klassenobjekt (Referenztyp) hat sich verändert Console.WriteLine($"{KlassenPerson.name}: {KlassenPerson.alter}"); Console.WriteLine($"{StructPerson.name}: {StructPerson.alter}"); //Übergabe des Wertetyps als Refernz mittels Ref-Stichwort Altern(ref StructPerson); Console.WriteLine($"{StructPerson.name}: {StructPerson.alter}"); Console.ReadKey(); }
//Mittels des REF-Stichworts können Wertetypen als Referenz an Methoden übergeben werden. D.h. die übergebene Speicherstelle selbst ///wird manipuliert und nicht, wie normalerweise bei Wertetypen, eine Kopie des Werts. public static void Altern(ref PersonS person) { person.alter++; }