【发布时间】:2019-05-07 04:44:50
【问题描述】:
我正在使用旧库中的方法:F (ref T t) where T: struct。仅出于性能原因将其声明为ref,并且不会修改它接收到的数据。此库无法更改。
在我的代码中,我有一个新方法 G (in T t) where T: struct 调用 F。
有没有办法直接用我收到的参考资料调用F,而无需先将其复制到临时文件中?
【问题讨论】:
-
方法是让你的函数也成为一个参考函数。然后你就一直把参考递过来。
-
In、ref 和 out 只是它们的意图声明不同:“in 关键字导致参数通过引用传递。它就像 ref 或 out 关键字,只是 in 参数不能被被调用的方法。虽然可以修改 ref 参数,但 out 参数必须由被调用的方法修改,并且这些修改在调用上下文中是可观察的。 in 将一直是正确的工具。但如果缺少这一点,您可能也必须使用 ref 。编译器不允许您在 ref 参数点上放置 in 参数,这正是 in 存在的原因。