ref参数
将一个变量传入一个函数中进行 “处理”,“ 处理”完成后,再将“处理”结果带出函数
要求:
函数外必须为变量赋值,而函数内可以不赋值。
语法
形参和实参前都要加ref关键字。
static void Main(string[] args)
{
int num = 5;
Add(ref num);
Console.WriteLine(num);
Console.ReadKey();
}
static void Add(ref int num)
{
num += 10;
Console.WriteLine(num);
}
static void Main(string[] args)
{
int num = 5;
Add(ref num);
Console.WriteLine(num);
Console.ReadKey();
}
static void Add(ref int num)
{
num += 10;
Console.WriteLine(num);
}
out参数
一个函数中如果返回多个不同类型的值,就需要用到out参数。
函数外可以不为变量赋值,函数内,必须为其赋值。
static void Main(string[] args)
{
//out参数
//申明一个Number 函数 传递两个值过去,返回最大,最小,和,平均数
int a = 10;
int b = 5;
int _max;
int _min;
int _total;
double _avg;
Number(a, b,out _max,out _min,out _total,out _avg);
Console.WriteLine($"max:{_max},min:{_min},total:{_total},avg:{_avg}");
Console.ReadKey();
}
static void Number(int a, int b,out int max,out int min,out int total,out double avg)
{
if (a > b)
{
max = a;
min = b;
}
else
{
max = b;
min = a;
}
total = a + b;
avg = total / 2;
}
static void Main(string[] args)
{
//out参数
//申明一个Number 函数 传递两个值过去,返回最大,最小,和,平均数
int a = 10;
int b = 5;
int _max;
int _min;
int _total;
double _avg;
Number(a, b,out _max,out _min,out _total,out _avg);
Console.WriteLine($"max:{_max},min:{_min},total:{_total},avg:{_avg}");
Console.ReadKey();
}
static void Number(int a, int b,out int max,out int min,out int total,out double avg)
{
if (a > b)
{
max = a;
min = b;
}
else
{
max = b;
min = a;
}
total = a + b;
avg = total / 2;
}