C# ref和out关键字
2007-03-24 13:40
288 查看
ref和out关键字初解
参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变,所作的修改会影响原来的变量的值;在C#中,除非特别说明,所有的参数都是值传递。
这是默认情况,也可以使用ref关键字,迫使值参数通过引用传递给方法,则给方法对变量所作的修改都会影响原来对象的值。在定义该方法时把该参数定义为ref后,在调用该方法时,还需要添加ref关键字。
static void myFun(int x,ref int y)
{
y = x;
}
//调用该方法
myFun(x,ref y);
有时为了从一个函数中返回多个值,我们需要使用out关键字,把输出值赋给通过引用传递给方法的变量(也就是参数)。但C#要求变量再被引用的前必须初始化。在调用该方法时,还需要添加out关键字。
static void myFun(out int y)
{
y = 10; //在这里进行初始化
}
//
//调用该方法
public static int Main()
{
int i;
myFun(out i);
Console.Writeline(i);
return 0;
}
从上面的例子我们可以看出,out关键字和ref的不同点主要在:使用out关键字时,必须在方法体内为变量提供初始值。
参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变,所作的修改会影响原来的变量的值;在C#中,除非特别说明,所有的参数都是值传递。
这是默认情况,也可以使用ref关键字,迫使值参数通过引用传递给方法,则给方法对变量所作的修改都会影响原来对象的值。在定义该方法时把该参数定义为ref后,在调用该方法时,还需要添加ref关键字。
static void myFun(int x,ref int y)
{
y = x;
}
//调用该方法
myFun(x,ref y);
有时为了从一个函数中返回多个值,我们需要使用out关键字,把输出值赋给通过引用传递给方法的变量(也就是参数)。但C#要求变量再被引用的前必须初始化。在调用该方法时,还需要添加out关键字。
static void myFun(out int y)
{
y = 10; //在这里进行初始化
}
//
//调用该方法
public static int Main()
{
int i;
myFun(out i);
Console.Writeline(i);
return 0;
}
从上面的例子我们可以看出,out关键字和ref的不同点主要在:使用out关键字时,必须在方法体内为变量提供初始值。
相关文章推荐
- ref与out关键字——C#的传引用调用
- c#高级参数关键字out、ref、params
- C# ref和out关键字总结
- C# 参考之方法参数关键字:params、ref及out 引用-http://www.cnblogs.com/hunts/archive/2007/01/13/619620.html
- C# 参考之方法参数关键字:params、ref及out
- 5.C#知识点:ref和Out关键字浅谈
- C#中ref和out关键字
- c#关键字,ref和out
- C# ref与out关键字的使用与区别
- C#方法参数传递-同时使用ref和out关键字
- 在c#中ref 和 out关键字的联系和区别
- C# 关键字ref out 的区别
- 为什么C#中ref和out 关键字 ?
- c#中ref和out 关键字
- C#参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C#中ref和out关键字的区别
- C# 参考之方法参数关键字:params、ref及out (收集)
- 用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字