Example #1
0
        static void Main(string[] args)
        {
            //Erstellung von Objekten
            StructPerson person1 = new StructPerson("Hugo", 45);
            ClassPerson  person2 = new ClassPerson("Anna", 45);

            //Ausgabe
            Console.WriteLine(person1.Alter);
            Console.WriteLine(person2.Alter);

            //Funktionsaufruf
            Altern(person1);
            Altern(person2);

            //Erneute Ausgabe: Nur das Klassenobjekt (Referenztyp) hat sich verändert. Das Structobjekt (Wertetyp) hat sich nicht verändert,
            //da bei der Übergabe an die Funktion nur eine Kopie des Objekts übergeben wurde.
            Console.WriteLine(person1.Alter);
            Console.WriteLine(person2.Alter);

            //Übergabe des Wertetyps als Refernz mittels Ref-Stichwort
            Altern2(ref person1);
            Console.WriteLine(person1.Alter);

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            //Erstellung von Objekten
            KlassenPerson kPerson = new KlassenPerson("Otto", 30);
            StructPerson  sPerson = new StructPerson("Anna", 30);

            //Ausgabe
            Console.WriteLine(kPerson.Alter);
            Console.WriteLine(sPerson.Alter);

            //Funktionsaufruf
            Altern(kPerson);
            Altern(sPerson);

            //Erneute Ausgabe: Nur das Klassenobjekt (Referenztyp) hat sich verändert
            Console.WriteLine(kPerson.Alter);
            Console.WriteLine(sPerson.Alter);

            //Übergabe des Wertetyps als Refernz mittels Ref-Stichwort
            Altern(ref sPerson);
            Console.WriteLine(sPerson.Alter);

            Console.ReadKey();
        }
Example #3
0
        static void Main(string[] args)
        {
            //Erstellung von Objekten
            StructPerson  otto = new StructPerson("Otto");
            KlassenPerson anna = new KlassenPerson("Anna");

            //Ausgabe
            Console.WriteLine("Otto: " + otto.alter);
            Console.WriteLine("Anna: " + anna.alter);

            //Funktionsaufruf
            Altern(otto);
            Altern(anna);

            //Erneute Ausgabe: Nur das Klassenobjekt (Referenztyp) hat sich verändert
            Console.WriteLine("Otto: " + otto.alter);
            Console.WriteLine("Anna: " + anna.alter);

            //Übergabe des Wertetyps als Refernz mittels Ref-Stichwort
            Altern(ref otto);
            Console.WriteLine("Otto: " + otto.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 StructPerson person)
 {
     person.Alter++;
 }
Example #5
0
 //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.
 static void Altern(ref StructPerson person)
 {
     person.alter++;
 }
Example #6
0
 static void Altern(StructPerson person)
 {
     person.Alter++;
 }