当我开始使用C#时,我不确定如何精确地处理引用(它们是否被值传递等).我错误地认为在传递被调用方法修改的对象时需要'ref'关键字.
然后读取线程等之后这个,我意识到,当你需要改变实际参考/指针本身只需要"裁判".
但是今天我在通过远程调用传递参数时遇到了一个问题,其中实际上需要ref来修改对象的内容.在没有引用的情况下传递时,对象恢复原状.我被告知要添加ref关键字,但我争论了一段时间,只有在更改指针本身时才需要它,而不是指向的内容.
我在网上搜索过,只能找到一个简单讨论它的页面.这是一个已知问题,是否有人能够指出一些有关它的文档?在我看来,我现在必须使用ref来通过远程调用修改任何参数.
添加“ref”可能有帮助,也可能没有帮助。这一切都取决于特定编组器实现的智能程度。例如,如果您调用 Web 服务,那么再多的“ref”也无济于事——函数的参数根本不会通过线路发送回。从服务返回的唯一内容是函数的返回值。在处理远程处理时,您必须了解(至少在某种程度上)实际工作的方式——参数需要序列化并通过某种“线路”发送到被调用者,在另一端反序列化,工作由服务器执行,结果序列化并发回给您。这些结果是否包括对您首先传递的参数的更改更多地取决于特定的远程处理实现,然后取决于您添加来装饰参数的“ref”...
| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |