Out关键是用来返回多个value的;在参数传入out的时候不需要初始化,而传出out的时候,参数是需要初始化的。Ref在这个地方刚好和Out相反,在传入Ref之前必须要初始化,而传出Ref之前无需初始化。Out是参数的单向传递,而Ref的参数是可以双向传递的。
Out演示代码
下面是Out参数的演示:
// C# program to illustrate the
// concept of out parameter
using System;
class GFG {
// Main method
static public void Main()
{
// Declaring variable
// without assigning value
int G;
// Pass variable G to the method
// using out keyword
Sum(out G);
// Display the value G
Console.WriteLine("The sum of" +
" the value is: {0}", G);
}
// Method in which out parameter is passed
// and this method returns the value of
// the passed parameter
public static void Sum(out int G)
{
G = 80;
G += G;
}
}
输出结果:
The sum of the value is: 160
Ref演示代码
下面是Ref参数的演示:
// C# program to illustrate the
// concept of ref parameter
using System;
class GFG {
// Main Method
public static void Main()
{
// Assign string value
string str = "Geek";
// Pass as a reference parameter
SetValue(ref str);
// Display the given string
Console.WriteLine(str);
}
static void SetValue(ref string str1)
{
// Check parameter value
if (str1 == "Geek") {
Console.WriteLine("Hello!!Geek");
}
// Assign the new value
// of the parameter
str1 = "GeeksforGeeks";
}
}
输出结果:
Hello!!Geek
GeeksforGeeks
Out和Ref的区别
Ref | Out |
---|---|
参数在传递给 ref 之前应该初始化。 | 没有必要在参数传递到 out 之前对其进行初始化。 |
在返回调用方法之前不需要初始化参数的值。 | 有必要在返回调用方法之前初始化参数的值。 |
当被调用的方法还需要更改传递参数的值时,通过 ref 参数传递值非常有用。 | 当方法返回多个值时,通过 out 参数声明参数很有用。 |
当使用 ref 关键字时,数据可以双向传递。 | 当使用 out 关键字时,数据仅以单向方式传递。 |
文档信息
- 本文作者:hillcat
- 本文链接:https://cs-cn.top/2020/01/01/DiffrentBetweenOutRef/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)