ref:
static void Main(string[] args)
{
int a = 5, b = 10;
add( a, b);
Console.WriteLine(a);
Console.ReadKey();
}
static void add( int num1, int num2)
{
num1 = num1 + num2;
}
输出5
static void Main(string[] args)
{
int a = 5, b = 10;
add(ref a, ref b);
Console.WriteLine(a);
Console.ReadKey();
}
static void add(ref int num1,ref int num2)
{
num1 = num1 + num2;
}
加上ref输出15
out
static void Main(string[] args)
{
int a = 5, b = 10;
add( a, b);
Console.WriteLine(a);
Console.ReadKey();
}
static void add( int num1, int num2)
{
num1 = 100;
num2 = 200;
num1 = num1 + num2;
}
输出5
static void Main(string[] args)
{
int a = 5, b = 10;
add(out a, out b);
Console.WriteLine(a);
Console.ReadKey();
}
static void add(out int num1, out int num2)
{
num1 = 100;
num2 = 200;
num1 = num1 + num2;
}
加上out 输出300
总结:
1、当使用ref的变量,要求传递进来时必须声明并赋值;使用out是必须在方法里为Out参数赋值,在传递进来的变量赋值也没有意义
2、ref应用内部对外部的值进行改变,Out是内部对外部变量赋值;out一般用在多个返回值的场所。