C#——数组型参数(数组作为参数传递的两种形式)
数组也是引用型数据,把数组作为参数传递时,也是引用传参。
数组作为参数传递的两种形式:
(1)在形参数组前不添加params修饰符,所对应的实参必须是一个数组名。
(2)在形参数组前添加params修饰符,所对应的实参可以是数组名,也可以是数组元素值的列表(即:数据列表),此时,系统将自动把各种元素值组织到形参数组中。
注意:无论哪一种形式,形参数组都不能定义数组的长度。
使用params修饰符时,注意:
(1)params关键字可以修饰任何类型的参数
(2)params关键字只能修饰一维数组。
(3)不允许对params数组使用ref或out关键字
(4)每个方法只能有一个params数组
下面通过一个简单的例子来理解以下这两种形式
界面:
一个Label标签
编写代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace a
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int[]x=new int[]{1,2,3,4,5,6};
label1.Text ="通过将实参数组传递给形参数组获取的最大值为:"+Convert .ToString( max(x));
label1.Text += "\n\n\n通过将数据列表传递给形参数组获取的最大值为:" + Convert.ToString(max2(1, 2, 3, 4, 5, 6));
}
int max(int []a)
{
int k=0;
for (int i = 0; i < a.Length; i++)
{
if (a[i] > a[k])
{
k = i;
}
}
return a[k];
}
int max2(params int[] a)
{
int k = 0;
for (int i = 0; i < a.Length; i++)
{
if (a[i] > a[k])
{
k = i;
}
}
return a[k];
}
}
}
运行结果: