C# 中的 Out 和 Ref 参数
2010-11-10 14:17
155 查看
out 和ref 参数 经常用来通过方法传递参数来获取值,当您的方法不只有一个返回值的时候,这两个参数就发挥作用了。ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。
在这篇文章里,我将解释如何在c#应用中使用这两个参数。
1、out 参数
out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
public class mathClass
{
public static int TestOut(out int iVal1, out
int iVal2)
{
iVal1 = 10;
iVal2 = 20;
return 0;
}
public static void Main()
{
int i, j; // variable need not be
initialized
Console.WriteLine(TestOut(out i, out
j));
Console.WriteLine(i);
Console.WriteLine(j);
}
}
2、ref 参数
ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
static void Main(string[] args)
{
// Ref sample
int refi; // variable need not be initialized
refi = 3;
RefTest(ref refi);
Console.WriteLine(refi);
Console.ReadKey();
}
public static void RefTest(ref int iVal1)
{
iVal1 += 2;
}
3、区别
使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。
在这篇文章里,我将解释如何在c#应用中使用这两个参数。
1、out 参数
out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
public class mathClass
{
public static int TestOut(out int iVal1, out
int iVal2)
{
iVal1 = 10;
iVal2 = 20;
return 0;
}
public static void Main()
{
int i, j; // variable need not be
initialized
Console.WriteLine(TestOut(out i, out
j));
Console.WriteLine(i);
Console.WriteLine(j);
}
}
2、ref 参数
ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
static void Main(string[] args)
{
// Ref sample
int refi; // variable need not be initialized
refi = 3;
RefTest(ref refi);
Console.WriteLine(refi);
Console.ReadKey();
}
public static void RefTest(ref int iVal1)
{
iVal1 += 2;
}
3、区别
使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。
相关文章推荐
- C# 参考之方法参数关键字:params、ref及out
- C#基础知识(七)——方法重载与out、ref、params参数
- c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
- C#中参数前缀ref、out的使用
- ref & out - C#中的参数传递
- C#的参数类型:params、out和ref
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# out 输出参数与ref 的区别
- C#之高级参数 ref,out,params的使用
- C#的参数类型:params、out和ref
- C# ref_out_params方法的参数_4种类型的参数
- C# 参考之方法参数关键字:params、ref及out
- C#的参数类型:params、out和ref
- C# 参考之方法参数关键字:params、ref及out (收集)
- c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
- C# 参数-ref 参数、out 参数和 params type[] 参数数列