ref和out之间有什么区别

时间:2011-03-17 00:33:48

标签: c#

  

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

我知道ref用于在函数外部传递变量的变量值, 但它与外面有什么不同?

5 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

ref参数允许您将 中的数据传递给您的函数 out

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

  

传递给ref参数的参数   必须先进行初始化。相比   这是一个out参数,其中   论证不一定是   在被存在之前明确初始化   传递给out参数。

答案 4 :(得分:0)

当进入方法的变量的值被认为是初始化并准备好使用时,使用

ref。一个例子是字符串解析系统中的索引:一个方法可以有ref int index,它将根据方法读取的内容递增。

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