params 数组参数的解读 为什么:对于 params 只能在一个参数列表中使用一次 并且要放到最后
今天开始第二遍 过代码 突然被卡在了 数组参数的地方
数组参数在一个参数列表中 只能出现一次 并且要放在最后 同时要被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)
如果你觉得写的不错,欢迎转载和点赞。 转载时请保留作者署名jilodream/王若伊_恩赐解脱(博客链接:http://www.cnblogs.com/jilodream/