何时使用ref以及在C#中何时不需要
我有一个对象是我在程序的内存状态,还有一些其他的工作函数,我传递对象来修改状态。我已经通过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
需要一个ref
而received_s
不是一个?
我也是程序员,所以我有一个问题,我的头脑中有指针。
编辑:看起来C#中的对象是引导下对象的指针。因此,当您将对象传递给函数时,您可以通过指针修改对象内容,传递给函数的唯一内容是指向对象的指针,因此对象本身不会被复制。如果您希望能够在函数中切换或创建一个新对象,就像双指针一样,则使用ref或out。
皈依舞
HUH函数
呼唤远方
相关分类