什么时候用out:当方法需要返回多个返回值的时候运用
什么时候用ref:当需要修改变量值的时候
out和ref传的都是地址
out必须再方法内为其赋值,如果判断分支,那么每一个分支必须又对局部变量赋值
ref修饰方法的参数,再调用的时候必须再变量前面加上ref关键字,只能传递变量不能传递常量
out侧重于输出,ref侧重于修改
out再传递之前可以不赋初始值,因为再方法中肯定会为out赋值
ref再传递之前必须要有值,因为再方法中有可能会用到这个参数的值
ref例子:
static void Main(string[] args)
{
Person o=new Person(){Age=17,Nmae="张明"};
Test3(p);
TestRef2(ref p);
}
static void TestRef2(ref Person p)
{
p=new Person(){Name="黎明"};
}
static void Test3(Person p)
{
p=new Person(){Nmae="花花"};
}
结果是:黎明,张明
分析:
1.ref传的是变量的地址
2.图解