假设我们有一个函数MutateX可以改变一个可变对象x (在我的例子中是一个byte []),这不足为奇地改变了x状态.我可以MutateX用两种方式来定义
void MutateX (ref Object x); // (A)
// or
void MutateX (Object x); // (B)
Run Code Online (Sandbox Code Playgroud)
无论如何,X仍然是参考值 - 尽管如此.
对我来说ref,该函数将以x某种方式改变(无论它是否将实际参考值更改为某个其他对象).是否有一种形式优先于另一种形式?
我注意到在SerialPort.Read中没有实现
如果你只改变了状态的的对象(即不重新分配的参考,但设置属性/调用方法/等),则没有:不使用ref.
对我来说ref表示该函数将以某种方式改变x
确实如此!但你不能改变x-要更改为对象指通过x,这是一个不同的事情.
使用refif:
所以总之; "没有".实际上,这ref是非常罕见且很难理解,这是除非必要,否则最小化使用它的另一个原因.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |