黑马程序员技术交流社区
标题:
ref out 什么意思 具体用处
[打印本页]
作者:
李海龙
时间:
2011-12-6 20:25
标题:
ref out 什么意思 具体用处
ref out 什么意思 具体用处
作者:
林洲
时间:
2011-12-6 23:52
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一般用在有多个返回值的场景。
作者:
黄友
时间:
2011-12-7 00:03
简单来说:ref 传入参数只传入一个引用对象,对这个对象的更改影响到原数据。
out和ref相似,区别在于,out返回前,必须对变量赋值。
作者:
刘立娜
时间:
2011-12-7 11:36
ref是值引用。无论在什么地方引用该变量,所做的更改都会修改原始值。
比如int a=0; b=ref a;c=ref b;对c的任何更改,a都会变化因为他们引用的是a的指针
out类型是输出型的参数,普通参数是不可以输出的。
作者:
张大福
时间:
2011-12-13 21:03
第一种思维方式:ref既作输入又作输出,out只作输出。
第二种思维方式:ref是值类型的引用。对于值类型,我们编程序函数或者方法时,希望改变入参变量的值,比如交换函数static void swap(int m, int n),主方法中用swap(a,b);但是值类型传递的是值,在函数或方法中处理后值不能改变,a和b的值不变,这样就不符合设计要求;static void swap(ref int m ,ref int m),主方法中用swap(ref a,ref b),能让a和b改变,符合设计要求;。out只作输出。
作者:
王富恒
时间:
2011-12-13 21:53
参数前面加out ,相当于直接对接受值赋值
1)在方法的参数类型前加out,那么传参数的时候,也必须在number前面加out 表明这个参数不是传入的,而是用来传出值的
2)如果参数是以out形式传入的,那么在传入前可以不付初值。
3)在方法中对于由out修饰的,必须赋值,并且必须在使用前赋值。
ref 既可以往里传值 也能往外反值;
在传参数的过程中,如果参数有out或者ref修饰的话,那么改变方法中的参数变量的值,调用者方法中的变量的值也会相应的发生改变。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2