Ich habe ein Objekt, das sich im Speicherstatus des Programms befindet, und einige andere Worker-Funktionen, an die ich das Objekt übergebe, um den Status zu ändern. Ich habe es per Ref an die Arbeiterfunktionen weitergegeben. Ich bin jedoch auf die folgende Funktion gestoßen.
byte[] received_s = new byte[2048];
IPEndPoint tmpIpEndPoint = new IPEndPoint(IPAddress.Any, UdpPort_msg);
EndPoint remoteEP = (tmpIpEndPoint);
int sz = soUdp_msg.ReceiveFrom(received_s, ref remoteEP);
Es verwirrt mich, weil beide received_s
und remoteEP
Sachen von der Funktion zurückgeben. Warum braucht remoteEP
man ein ref
und received_s
nicht?
Ich bin auch ein AC-Programmierer, daher habe ich ein Problem damit, Zeiger aus meinem Kopf zu bekommen.
Bearbeiten: Es sieht so aus, als wären Objekte in C # Zeiger auf das Objekt unter der Haube. Wenn Sie also ein Objekt an eine Funktion übergeben, können Sie den Objektinhalt über den Zeiger ändern. Das einzige, was an die Funktion übergeben wird, ist der Zeiger auf das Objekt, damit das Objekt selbst nicht kopiert wird. Sie verwenden ref oder out, wenn Sie in der Funktion, die einem Doppelzeiger ähnelt, ausschalten oder ein neues Objekt erstellen möchten.