c# - 在 c# 中,当向方法发送参数时,我们应该什么时候使用 "ref"什么时候使用 "out"以及什么时候不使用它们?

标签 c# methods parameters

在c#中,向方法发送参数时,什么时候应该使用“ref”,什么时候应该使用“out”,什么时候不用?

最佳答案

一般来说,如果可能的话,你应该避免使用 ref 和 out。

也就是说,当方法可能需要修改值时使用 ref。当方法总是应该为值赋值时使用 out。

ref 和 out 之间的区别在于,当使用 out 时,编译器强制执行规则,您需要在返回之前为 out 参数分配一些内容。使用 ref 时,您必须先为变量赋值,然后将其用作 ref 参数。

显然,当您编写自己的方法时,以上内容适用。如果您需要调用在其参数上使用 ref 或 out 修饰符声明的方法,则在调用该方法时,您应该在参数之前使用相同的修饰符。

另请记住,C# 通过引用传递引用类型(类)(例如,引用通过值传递)。所以如果你提供一些方法以引用类型作为参数,该方法可以修改对象的数据;即使没有 ref 或 out。但它不能修改引用本身(例如,它不能修改被引用的对象)。

关于c# - 在 c# 中,当向方法发送参数时,我们应该什么时候使用 "ref"什么时候使用 "out"以及什么时候不使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115762/

相关文章:

c# - 如何使用 C# MVC4 将 SQL Server 数据列表转换为结构化的 JSON 对象

c# - 返回整数和字符串

java - 如何在父类(super class)中使用子类方法?

java - Spring Boot应用程序: Splitting application into seperate tasks to be ran from command line?

windows-phone-7 - 如何在 Windows Phone 7 中获取 Wi-Fi 和移动网络参数?

ruby-on-rails - 以参数为前缀的 Rails 3 资源路由

c# - 如何在 LINQ 的表达式树中创建连接?

c# - ORM市场分析

json - JSON 验证 REST 端点的正确名称和 http 方法

javascript - 如何使用 onclick 调用带参数的函数?