ref和out 共同点:
1.都是传递地址,改变参数本身的值。
2.需要在定义和调用中都加ref/out关键字
3.都可以变相解决函数只有一个返回值的问题。
ref和out 区别:
ref(传引用也传值)必须在函数外初始化,否则报错。
out(传引用不传值)必须在函数内初始化,否则报错(如果在函数外初始化了也是无效的)。
实例:
class MainClass
{
static void FuncRef(ref int a)
{
a = a + 1;
}
static void FuncOut(out int a)
{
a = 1;
}
public static void Main(string[] args)
{
int value_a = 1;
int value_b;
FuncRef(ref value_a);
FuncOut(out value_b);
Console.WriteLine(value_a); //2
Console.WriteLine(value_b); //1
Console.ReadKey();
}
}