实例018 求解多个数的乘法运算——函数参数输出

【实例描述】

本实例主要介绍利用out关键字实现函数返回值以及数目可变参数的传递。该实例从控制台输入三个数,然后计算三个数的乘积,最后从控制台输出计算结果,效果如图2-18所示。

图2-18 求解多个数的乘法运算

【实现过程】

(1)创建一个名为Multiplication的控制台应用程序。

(2)定义一个名为GetMultResult的函数,代码如下:

    /// 求多个整数的乘积
    /// <param name="result">多个整数的乘积</param>
    /// <param name="numbers">需要求乘积的整数集合</param>
    public void GetMultResult(out int result, params int[] numbers)
    {
        result = 1;                                          //初始值为1
        foreach (int number in numbers) result *= number;    //计算多个整数乘积
    }

(3)从控制台输入三个整数,计算三个数的乘积,并从控制台输出。在 main 函数中添加代码如下:

    Console.WriteLine("请输入第一个数:");
    int number1 = int.Parse(Console.ReadLine());
    Console.WriteLine("请输入第二个数:");
    int number2 = int.Parse(Console.ReadLine());
    Console.WriteLine("请输入第三个数:");
    int number3 = int.Parse(Console.ReadLine());
    Program p = new Program();
    int result;                                     //存储三个数相乘的结果
    p.GetMultResult(out result, number1, number2, number3);
    Console.WriteLine("{0} * {1} * {2} = {3}", number1, number2, number3, result);

【代码解析】

本实例代码中首先创建了一个名为GetMultResult的函数,该函数的第一个参数为整型变量result,该参数前面的out关键字表示该参数为引用传递。

说明:此处的out关键字与前面的ref关键略有不同,out关键字修饰的参数在传递时是不需要初始化的。

GetMultResult函数的第二个函数为一个整型数组numbers,该数组中用于存储需要计算乘积的整数,numbers前面加入了params关键字,表示在调用函数时可以直接输入可变数量的参数。例如,实例代码中在调用GetMultResult函数时,并没有传递一个整型数组,而是直接传入三个整数,系统此时会自动将这三个整数作为函数中numbers的三个元素。这样就可以实现参数的动态变化。

注意:用params关键字修饰函数参数时,只能存在一个且必须放在最后。