首页 新闻 会员 周边 捐助

C# 参数数组与数组参数的区别

0
悬赏园豆:15 [待解决问题]

怎样理解参数数组?

请用实例解释一下.

jophie的主页 jophie | 初学一级 | 园豆:185
提问于:2012-03-04 18:18
< >
分享
所有回答(5)
2

参数数组,通过关键字params定义参数数组。调用时可以传入个数不同的实参,具备很好的灵活性。示例代码:

       //参数数组,关键字params
static int Add(params int[] p)
{
int sum=0;
foreach (int i in p)
sum += i;
return sum;
}
static void Main(string[] args)
{
Console.WriteLine(Add(1));
Console.WriteLine(Add(1, 3));
Console.WriteLine(Add(1, 3,5));
Console.WriteLine(Add(1, 3, 5,7));
Console.ReadKey();
}
artwl | 园豆:16736 (专家六级) | 2012-03-04 18:36
哥哥,能不能解释下int [] p 的含义?
支持(0) 反对(0) jophie | 园豆:185 (初学一级) | 2012-03-04 20:47

@jophie: 这就是一个数组形式的参数啊

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-03-05 10:04

@jophie: 你应该仔细再看一次C#的基础教程

支持(0) 反对(0) Gavin Lipeng Ma | 园豆:21 (初学一级) | 2012-03-05 13:15

@大水壶: 正是看不懂基础教材才请教大家的。

支持(0) 反对(0) jophie | 园豆:185 (初学一级) | 2012-03-05 17:23

@artwl: 

能不能这样理解:

params int [] P 是int [] [] p;

int [] [] p = new int[] {1};

              = new int [] {1, 3}

              = new int [] {1,3,5}

             = new int [] {1,3,5,7}

而 

Console.WriteLine(Add(1)); 
Console.WriteLine(Add(1, 3));
Console.WriteLine(Add(1, 3,5));
Console.WriteLine(Add(1, 3, 5,7));
可以写为 Add (new int [] {1});
             Add (new int [] {1,3});
             Add (new int [] {1,3,5});
            Add (new int [] {1,3,5,7});
支持(0) 反对(0) jophie | 园豆:185 (初学一级) | 2012-03-05 19:49
-1

数组参数,个人认为是   作为返回值的类型,或者作为 方法体带入的参数类型

 

参数类型:就是 Params

Anleb | 园豆:208 (菜鸟二级) | 2012-03-04 23:07
0
 int[] p规定了传入参数的类型必须为int ,如果你想传字符串需要写成
params string[] p
麻将我会 | 园豆:24 (初学一级) | 2012-03-05 09:07
2

一个语法糖,是可以选参数,可以逗号隔开来参数传递

慧☆星 | 园豆:5722 (大侠五级) | 2012-03-05 14:23
0

这样,定义一个函数 void Sum(int[]  nums)用来计算输入的值的和。

1、不加params时,void Sum(int[]  nums),调用Sum方法时,你只能输入int型数组参数;

2、加params时,void Sum(params int[]  nums)你既可以输入int型数组参数,也可以输入多个int参数。

FanQH | 园豆:204 (菜鸟二级) | 2014-09-10 22:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册