1、ref参数运用的例子
static void Main(string[] args)
{
int age = 20;
IncAge(ref age);
Console.WriteLine(age);
Console.ReadKey();
}
static void IncAge(ref int age)//此时的age指向的就是主函数中age变量所在内存中的位子,即传递了引用
{
age++;
}//
输出age=21。
2、out参数运用的例子
static void Main(string[] args)
{
int age = 20;
IncAge(out age);
Console.WriteLine(age);
Console.ReadKey();
}
static void IncAge(out int age)
{
age = 30;
age++;
}
此时输出age=31,与main函数中age的赋值无关。
结论:ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,初始化了也没用。
ref应用场景内部对外部的值进行改变(也可以是不改变),out则是内部为外部赋值(必须赋予一个值),out一般用在有多个返回值的场景。 |