Hi zusammen,
ich als alter C’ler stehe gerade ein wenig verwirrt vor C# und zwar:
Gibt es eine Faustregel wann und ob C# Referenzen verwendet und wann kopiert wird?
Soweit ich das verstanden habe, wird bei Parameterübergabe immer copy by value gemacht, ausser man schreibt ref oder out davor. Allerdings hat mir jetzt irgendjemand gesagt, dass Objekte die Objekte enthalten zwar kopiert werden, aber die Objekte die in den Objekten sind referenziert sind *sehr verwirrt schau*.
Also z.B.
Hashlist hash = new Hashlist();
string test = „testValue“;
hash.Add(„testValue“, test);
object.CallFunktion(hash);
dann wäre nach oben genannter These in CallFunktion hash’ eine Kopie von has, test’ aber eine referenz auf test???
Und dann noch etwas:
Wenn ich ein Objekt erzeuge und dem Objekt ein weiteres hinzufüge wird dann ein neues Objekt erzeugt und dem anderen hinzugefügt, oder die Referenz auf das Objekt?
z.B. das oben genannte Beispiel.
Befindet sich eine Kopie des Stringobjekt „test“ in der Hashtable, oder nur eine Referenz auf „test“??
Ich hoffe das war jetzt nicht zu sehr verwirrend, aber ich hab nirgendwo ein brauchbares Beispiel gefunden.
Wie sehr trauer ich doch den Pointern hinterher, da wusste man wenigstens was man macht
vielen dank schon mal
grüße
/silvl