在学习C#的过程中,发现了一些以前没注意到的东西,记下来提醒自己:

1、参数数组

参数数组可以使用个数不定的参数调用函数,它可以使用params关键字来定义。(params 必须在参数表的最后出现)

class Program
    {
          static int sumVals(params int[] vals)
          {
                int sum = 0;
                foreach(int val in vals)
                {
                      sum += val;
                }
                return sum;
          }
          static void Main(string[] args)
          {
                int sum = sumVals(1,5,2,9,8);
                Console.WriteLine("Summed Values = {0}",sum);
          }
    }

函数sumVals()可以接受任意个int参数(或不接受任何参数)。

 

2、通过引用传递参数

static void showDouble(ref int val)
{
     ......
}

调用时

showDouble(ref

myNumber 也会被修改。

但是,用作ref参数的变量有两个限制。

1)

函数可能改变参数的值,所以参数必须是变量,不能是常量const;

2)

必须使用初始化过的变量。