Wie würden Sie dasselbe Objekt zwischen zwei anderen Objekten teilen? Zum Beispiel möchte ich etwas in diesem Geschmack:
%Vor%Hier möchte ich keinen Hinweis auf die Bar-Methode geben. Was ich erreichen möchte, ist etwas, das in C ++ so aussehen würde:
%Vor%Ich habe gelesen, dass es einige Ref / Out-Sachen gibt, aber ich konnte nicht bekommen, was ich hier frage. Ich konnte nur einige Änderungen im Methodenumfang anwenden, wo ich Ref / Out-Argumente verwendete ... Ich lese auch, dass wir Zeiger verwenden könnten, aber gibt es keinen anderen Weg, es zu tun?
Dies hat nichts mit dem Teilen von Objekten zu tun. Sie haben einen Verweis auf eine Zeichenfolge in den A-Konstruktor übergeben. Diese Referenz wurde in das private Mitglied foo_
kopiert. Später haben Sie B()
aufgerufen, was foo_
zu "changed" geändert hat.
Zu keiner Zeit haben Sie str
geändert. str
ist eine lokale Variable in main
. Du hast nie einen Hinweis darauf gegeben.
Wenn Sie str
ändern wollten, hätten Sie B als
Überlegen Sie:
%Vor%in main:
%Vor%Ich würde meine Antwort auf zwei Teile aufteilen: 1) Wenn es sich bei der Variablen um einen Referenztyp handelt, der bereits freigegeben ist, da Sie die Referenz an alle interessierten Objekte übergeben. Das einzige, was Sie beachten sollten, ist, dass die Instanzen des Referenztyps änderbar sind. 2) Wenn die Variable ein Werttyp ist, den Sie ref oder out verwenden müssten, oder einen Wrapper, der änderbar ist, und Sie den Wert innerhalb des Wrappers mithilfe einer Methode oder einer Eigenschaft ändern können. Hoffe das hilft.
Tags und Links c#