J'ai un objet qui est de mon état de la mémoire du programme et aussi quelques autres travailleurs fonctions que j'ai passer l'objet à modifier l'état. J'ai été en passant par la réf pour le travailleur fonctions. Cependant je suis tombé sur la fonction suivante.
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);
Il me confond, car les deux received_s
et remoteEP
sont de retour stuff de la fonction. Pourquoi est - remoteEP
besoin d'un ref
et received_s
ne l'est pas?
Je suis aussi un programmeur en c, donc je vais avoir un problème pour faire des pointeurs de ma tête.
Edit: On dirait que les objets en C# sont des pointeurs à l'objet sous le capot. Ainsi, lorsque vous passez un objet à une fonction que vous pouvez ensuite modifier l'objet contenu via le pointeur et la seule chose passé à la fonction est le pointeur vers l'objet et l'objet lui-même n'est pas copié. Vous utilisez ref ou si vous voulez être en mesure de changer ou de créer un nouvel objet dans la fonction qui est comme un double pointeur.