关于C#中的params和数组形参的区别,迷糊~~~

flashbrother 2010-08-12 08:15:22
看到C#中有params关键字可用作未知长度的数组参数。
那么:
void Method1(int, params string[] ParaArray)
void Method2(int, string[] ParaArray)

Method1和Method2有什么区别吗?在什么情况下params比数组有优势呢?
...全文
303 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
k0mmDu 2010-08-12
  • 打赏
  • 举报
回复
void Method1(int, params string[] ParaArray)这个
String[] arr = new String[]{"a","b"};
Method1(2,arr);
也可以和不标params的一样传入string[]对象

我觉得最大的区别就是
标记params的参数可以不传
例如
void Method1(int, params string[] ParaArray)这个
直接调用Method1(2);编译也会过
flashbrother 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]
params 关键字在方法成员的参数列表中使用,为该方法提供了参数个数可变的能力
public static void UseParams(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
}

static voi……
[/Quote]

还是没看出有什么优势来,反而觉得PARAMS会把调用出的代码变得很乱。。。
wuyq11 2010-08-12
  • 打赏
  • 举报
回复
params 关键字在方法成员的参数列表中使用,为该方法提供了参数个数可变的能力
public static void UseParams(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
}

static void Main()
{
// 一般做法是先构造一个对象数组,然后将此数组作为方法的参数
object[] arr = new object[3] { 100, 'a', "keywords" };
UseParams(arr);
// 而使用了params修饰方法参数后,我们可以直接使用一组对象作为参数
// 当然这组参数需要符合调用的方法对参数的要求
UseParams(100, 'a', "keywords");
Console.Read
Angelicer 2010-08-12
  • 打赏
  • 举报
回复
学C#半年了,还没上手,学习……
jeven_xiao 2010-08-12
  • 打赏
  • 举报
回复
多个参数 与一个数组的区别.如果数据量大的话尽量使用前者
Snowdust 2010-08-12
  • 打赏
  • 举报
回复
前者是传递多个参数;
后者是传递一个参数,这个参数是一个数组。
调用的时候就可以看出区别:
Method1(1, "a");
Method1(1, "a", "b", "c");

string arr = new string[] {"a", "b"};
void Method2(1, arr)
Peter200694013 2010-08-12
  • 打赏
  • 举报
回复
void Method1(int, params string[] ParaArray)
调用该方法: 参数为一个int,多个String
eg: Method1(1,"a","b","c");

void Method2(int, string[] ParaArray)
调用该方法: 参数为一个int,一个String数组
eg:
String[] arr = new String[]{"a","b"};
Method2(2,arr);
zhengqian529 2010-08-12
  • 打赏
  • 举报
回复
如果你不确定传进来的数组有多大,用第一个比较好。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧