【问题标题】:What is the difference between ref and out [duplicate]ref和out有什么区别[重复]
【发布时间】:2011-03-17 00:33:48
【问题描述】:

可能重复:
Difference between ref and out parameters in .NET

我知道 ref 用于将变量的更改值传递到函数外部, 但是和out有什么区别呢?

【问题讨论】:

标签: c#


【解决方案1】:

传递给 ref 参数的参数 必须先初始化。比较 this 到一个 out 参数,其 论点不必是 在被显式初始化之前 传递给 out 参数。

【讨论】:

    【解决方案2】:

    out 参数必须在读取之前和函数返回之前分配。

    ref 参数在读取或函数返回之前不需要分配。

    因此,变量必须在作为ref 参数传递之前分配,而out 参数在传递之前可能未初始化。

    【讨论】:

      【解决方案3】:

      ref 参数允许您将数据 in 传递给您的函数,除了发送它out

      带有out参数的函数看不到参数的初始值(编译器认为它未初始化)

      【讨论】:

        【解决方案4】:

        将参数指定为out 意味着该函数需要在返回之前为其赋值。将参数指定为ref 意味着函数可以为其赋值,但不是必须的。

        请注意,这只是 C# 约定,运行时不会区分两者。

        【讨论】:

          【解决方案5】:

          ref 用于当进入方法的变量的值被认为已初始化并准备好使用时。一个例子是字符串解析系统中的索引:一个方法可以有一个ref int index,它将根据方法读取的内容递增。

          out 类似于多个返回值。变量在调用方法前不必初始化,变量必须在被调用方法中设置好后才返回。

          【讨论】:

            猜你喜欢
            • 2010-09-28
            • 2014-01-11
            • 1970-01-01
            • 2018-12-29
            • 1970-01-01
            • 1970-01-01
            • 2016-02-22
            • 2010-09-13
            相关资源
            最近更新 更多