C#学习笔记2-C#的三个高级参数out参数、ref参数及params参数
前言
今日学习第二弹,持续学习吧,少年。
今天学习了方法中的三个高级参数out参数、ref参数和params参数,对方法的使用又有的更高的认识,三个高级参数的作用分别是什么呢???
Come on! 继续看看吧
Out参数
out参数的作用其实就是为了在方法中输出多个不同类型的返回值
对于相同类型的返回值来说,我们可以利用数组的形式进行存储,从而返回到主函数中;
但是对于不同类型的参数,数组则起不到作用了,此时就需要我们的out参数出场呢
语法结构:
static void 函数名(函数参数,out 函数类型 返回参数)
例如:
static void Test(int[] nums,out int max,out int min)
out参数使用实例
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8 };
int max;
int min;
int sum;
int aver;
//将要返回的四个值放到一个数组中返回
test(nums, out max, out min, out sum, out aver);
Console.WriteLine("数组最大值为{0},最小值为{1},总和为{2},平均值为{3}",max,min,sum,aver);
Console.ReadKey();
}
static void Test(int[] nums, out int max, out int min, out int sum, out int aver)
//out参数要求在方法的内部必须为其赋值
{
max = nums[0];
min = nums[0];
sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max = nums[i];
}
if (nums[i] < min)
{
min = nums[i];
}
sum += nums[i];
}
aver = sum / nums.Length;
}
注:out参数要求在方法的内部必须为其赋值
ref参数
ref参数的存在是为了让我们偷偷懒
对于下列代码,我们需要在主函数中定义一个变量来接收返回值,并且还需要在定义函数sum中加上return,显得较为麻烦
static void Main(string[] args)
{
int n1;
int n2 = Test(n1);
Console.WriteLine(n2);
Console.ReadKey();
}
static int Test(int n1)
{
return n1+500;
}
而当加入ref参数后,可直接对n1进行变化
ref参数能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出方法
static void Main(string[] args)
{
int n1;
Test(ref n1);
Console.WriteLine(n1);
Console.ReadKey();
}
static void Test(ref int n1)
{
n1+=500;
}
注:ref参数要求在函数外部必须对参数赋值,而在函数内不一定需要
params参数
parameter意思就是参数的意思,params我们可以理解为多个参数
在C#中,params参数的作用就是可以使数组中的个数可灵活变化
使用params参数可将实参列表中跟可变参数数组类型一致的元素都当作数组的元素去处理
例:
params int[] score
Test(“张三”,99,97,98,96)//此处元素个数可任意变换
注:params参数在一个函数中只能使用一次,并且只能放在最后声明
并且实话说,我觉得这个参数的作用有些鸡肋,希望后面的学习可以发现它的作用
总结
在C#中,每个高级参数都存在自己的作用,在使用时需要灵活应用
今天持续感受到学习的快乐,继续吧!
上一篇: C#学习笔记3-函数综合练习