c# - 为什么C#要区分ref和out?

标签 c#

<分区>

根据这个postrefout 之间存在区别的原因是因为在使用 ref 时复制变量值的成本很高。

为什么首先需要编码? C# 不只是在后台传递指针吗?在这种情况下,就不需要复制值。

最佳答案

因为两者的语义完全不同。

out 参数用于指示它将用于返回(输出)一个值,仅此而已。

另一方面,ref 参数指示应通过引用将现有对象(变量)传递给方法。在 C# 的上下文中,通过引用传递的对象(不要与引用类型混淆)通常暗示该方法将(并且应该)修改该对象。它不应该“仅仅因为”使用。它通常仅用于值类型,因为它是获取它们的引用语义的唯一方法。

关于c# - 为什么C#要区分ref和out?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20733892/

相关文章:

c# - 创建调试信息文件 GG.PDB 时出现意外错误“--”

c# - 加速 SqlDataSource 的技巧?

c# - 您如何看待在 C# 中使用属性作为对象初始值设定项?

c# - C# 中的 XML 智能感知与 VB.Net 中的一样吗?

c# - 从 Finalizer 调用托管资源安全吗? (如果我检查为空)

c# - 如何在 C# 中获取 OAuth 2.0 身份验证 token

c# - 如何停止传送门 A 和 B 之间的无限旅行?

c# - 当我在表单 onsubmit 中有函数时,Ajax 不起作用

c# - 获取 string[] 的输出参数作为 IEnumerable<string>

c# - 在roslyn中访问VS完整解决方案