, Для правильных утверждений важно использовать правильную терминологию для обозначения понятий.

я есть объект, который находится в памяти программы, а также есть некоторые другие рабочие функции, которым я передаю объект для изменения состояния. Я передавал его по ссылкам на рабочие функции. Однако я наткнулся на следующую функцию.

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 нуженref а такжеreceived_s не?

Я также программист на C, поэтому у меня проблемы с выводом указателей из головы.

Изменить: похоже, что объекты в C # являются указателями на объект под капотом. Поэтому, когда вы передаете объект в функцию, вы можете затем изменить содержимое объекта через указатель, и единственная вещь, переданная функции, - это указатель на объект, чтобы сам объект не копировался. Вы используете ref или out, если хотите иметь возможность отключить или создать новый объект в функции, который похож на двойной указатель.

Ответы на вопрос(8)

Ваш ответ на вопрос