J'ai un objet qui est mon état en mémoire du programme et j'ai également d'autres fonctions de travail auxquelles je passe l'objet pour modifier l'état. Je l'ai passé par référence aux fonctions de travail. 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);
Cela me déroute parce que les deux received_s
et remoteEP
retournent des trucs de la fonction. Pourquoi a-t-il remoteEP
besoin d'un ref
et received_s
non?
Je suis également programmeur ac donc j'ai du mal à sortir les pointeurs de ma tête.
Edit: On dirait que les objets en C # sont des pointeurs vers l'objet sous le capot. Ainsi, lorsque vous passez un objet à une fonction, vous pouvez alors modifier le contenu de l'objet via le pointeur et la seule chose passée à la fonction est le pointeur vers l'objet afin que l'objet lui-même ne soit pas copié. Vous utilisez ref ou out si vous voulez pouvoir basculer ou créer un nouvel objet dans la fonction qui est comme un double pointeur.