프로그램의 메모리 상태 인 개체가 있고 상태를 수정하기 위해 개체를 전달하는 다른 작업자 함수도 있습니다. 작업자 함수에 ref로 전달했습니다. 그러나 나는 다음과 같은 기능을 발견했습니다.
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);
received_s
와 둘 다 remoteEP
함수에서 물건을 반환 하기 때문에 혼란 스럽습니다 . 이유는 무엇입니까 remoteEP
필요성 A가 ref
와 received_s
하지 않는 이유는 무엇입니까?
나는 또한 AC 프로그래머이므로 포인터를 머리에서 꺼내는 데 문제가 있습니다.
편집 : C #의 개체가 내부 개체에 대한 포인터 인 것 같습니다. 따라서 객체를 함수에 전달할 때 포인터를 통해 객체 내용을 수정할 수 있으며 함수에 전달되는 유일한 것은 객체에 대한 포인터이므로 객체 자체가 복사되지 않습니다. 이중 포인터와 같은 함수에서 전환하거나 새 개체를 만들려면 ref 또는 out을 사용합니다.