您的位置:首页 > 其它

params 数组参数的解读 为什么:对于 params 只能在一个参数列表中使用一次 并且要放到最后

2012-12-05 17:08 274 查看
今天开始第二遍 过代码 突然被卡在了 数组参数的地方

数组参数在一个参数列表中 只能出现一次 并且要放在最后 同时要被params 修饰

然后想到前几天 明明 参数列表中可以有有多个参数 然后试了一下 发现可以 但是只能出现一个params

class Program
{
static void printf(int[] var1, params int[] var2)
{
foreach (int x in var1)
Console.WriteLine(x);
foreach(int y in var2)
Console.WriteLine(y);
}
static void Main(string[] args)
{
int[] var1={1,2,3,4,5};
int[] var2 = { 1, 2, 3, 4, 5 };
printf(var1, var2);

}
}

于是不解 用params 这种修饰的话 有什么好处

然后发现 下边有个例子 params 修饰的数组参数 可以通过将罗列 数组参数的形式表达参数 一下子豁然开朗 这样的话 就不用单独的创建一个数组 然后数组的对应位置 在分别用不同的变量赋值 这样省去了 很多麻烦 还节约了内存

然后又尝试了一下 如果不加params 的 数组做参数的话 可以不可 果然不行

当params 只出现一次的时候 即使 params 罗列的数组变量 和 之前的所有参数都用 逗号分隔开 不用特别的标注 vs 也可以识别出来

这时候又想到 那为什么要放到最后呢 放到中间也可以推倒出来啊 然后猜测 可能是当时开发的人员为了省力 放到最后 从左到右 一遍就能出结果

不用 从左到右 再从右向左 两遍排除 不是数组参数的 变量 但是这样判断起来过于麻烦

而且 如果有多个params 的话 就不可能判断出来了 例如 ( int int params int[] x int int params int[] y)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐