Referenzen in C# benutzen
-
Hallo,
ich bin noch ganz neu in der Programmierung, also nich über mein Unwissen wundern.
Was sind in C# referenzen und wie benutze ich sie?
Ich habe schon etwas durchgelesen, aber irgendwie kann ich es mir nicht ganz vorstellen.
-
Hallo Neeew,
ich muss Dich leider enttäuschen: Programmieren lernt man nicht in Foren! Da Du aber noch sehr am Anfang bist, will ich mal meine Prinzipien beiseite lassen und Dir das sagen, was Du in jedem guten C#-Handbuch selber nachlesen kannst.
Du kannst Dir eine Referenz als einen Typ vorstellen, der aus zwei Teilen besteht: aus a) einem Objekt und b) einem Verweis auf dieses Objekt.
Ein System.String-Typ ist so ein Referenz-Typ. Wenn ich also eine Variable vom Typ System.String deklariere, etwa so:
string meinName;
erstelle ich damit eine Referenz, d.h. ein Verweis auf ein Objekt vom Typ System.String. Zunächst verweist diese Referenz auf nichts (ist null), ich habe ihr ja nichts zugewiesen. Sobald die Zuweisung geschieht, etwa so:
meinName = "Neeew";
wird ein Objekt mit dem Inhalt "Neeew" im Speicher (Heap) erstellt und die Adresse an dem dieses Objekt im Speicher steht, wird der Referenz meinName zugewiesen. Die Variable meinName enthält also nicht die Zeichenfolge "Neeew", sondern nur eine Adresse, eine Nummer, an der das Objekt mit dieser Zeichenfolge zu finden ist. Wenn ich nun eine neue Zuweisung mache:
meinName = "Ich lerne C#";
wird ein neues Objekt vom Typ System.String im Speicher erstellt, und die Adresse der Speicherzelle an dem dieses neue Objekt steht (z.B. 87637876), wird der Referenz erneut zugewiesen. Das alte Objekt ("Neeew") bleibt im Speicher, ist aber nun verwaist, da keine Referenz mehr auf sie zeigt. Für solchen Datenmüll gibt es den Garbage Collector, der die Objekte zerstört indem er den vom Objekt besetzten Speicherblock als neu zuweisbar kennzeichnet.
Es gibt viele gute Tutorials zu C#. Google Dich doch bitte ein bischen um.