C# 函数的 (引用参数 和 值参数)

今天已经开始学习 函数的参数部分了:
学习总结:
1.每个参数都有一个类型和一个名称,每个参数都在函数的代码中用作一个变量.
2.在调用参数时,必须使参数与函数定义中指定的参数完全匹配(类型、个数、顺序)。
3.参数数组:
   C#允许指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组。可以使用参数个数不定的参数调用函数,它可以使用 params 关键字来定义。
下面是参数数组的例子:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    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)
        {
            //double[,] hillHeight = { { 1, 2, 3, 4 }, { 2,3,4,5}, { 3,4,5,6} };  //定义及初始化二维数组
            //foreach(double height in hillHeight)
            //{
            //    Console.WriteLine("{0}",height);
            //}
            //Console.ReadKey();

            int sum=SumVals(1,3,4,5,7,5);
            Console.WriteLine("SumVals数组的和是:{0}",sum);
            Console.ReadKey();
        }
    }
}


4.引用参数和值参数
       引用参数相当于是引用参数的地址,函数定义时和函数调用时都必须用 ref 关键字,在调用函数参数的值改变将会影响到参数的实际值,而值参数则不会改变。

使用引用参数时须注意2点:
(1).参数必须是变量类型,不能是常量。
(2).参数调用时,参数必须已经初始化,不能使参数在调用函数中初始化,这是不允许的。

下面是一个引用参数的例子:注意关键字 ref, 去掉 ref 就是值参数。
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static int Double(ref int val)
        {
            val = val * 2;
            return val;
        }

        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数:");
            int val = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("您刚才输入的值 val={0}",val);

            Console.WriteLine("Double(val)={0}",Double(ref val));
            Console.WriteLine("经函数处理之后的val={0}",val);
            Console.ReadKey();
        }
    }
}

原文地址:https://www.cnblogs.com/gfwei/p/524790.html