前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 中的参数数组、引用参数和输出参数

C# 中的参数数组、引用参数和输出参数

作者头像
mwangblog
发布2018-07-04 11:33:06
3.1K0
发布2018-07-04 11:33:06
举报
文章被收录于专栏:mwangblogmwangblog

C# 中的参数数组、引用参数和输出参数

本文目录

  • 1 参数数组
  • 2 引用参数
  • 3 输出参数

参数数组

在C#中,可以为函数指定一个不定长的参数,这个参数是函数定义中的最后一个参数,这个参数叫做参数数组。

下面是一个例子:

代码语言:javascript
复制
namespace Ch6Ex2{
    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, 2, 3, 4, 5);
            Console.WriteLine($"Summed Values = {sum}");
            Console.ReadKey();
        }
    }}

函数SumVals有一个参数数组,即vals,在定义该参数时,需要使用params参数。在调用该函数时,可以给参数输入传入多个实参。

引用参数

可以通过引用传递参数,需要使用ref关键字。

下面是一个例子:

代码语言:javascript
复制
namespace MyProgram{
    class Program
    {
        static void SwapInts (ref int a, ref int b)
        {
            int temp = b;
            b = a;
            a = temp; 
        }
        static void Main(string[] args)
        {
            int a = 1;
            int b = 2;
            Console.WriteLine($"a = {a}, b = {b}");
            SwapInts(ref a, ref b);
            Console.WriteLine($"a = {a}, b = {b}");
            Console.ReadKey();
        }
    }}

这是一个简单的交换两个值的程序,由于函数SwapInts使用了引用参数,所以可以在函数中修改变量ab的值,需要注意的是,在调用函数时也要使用ref传递引用参数。

输出参数

输出参数使用out关键字,它的效果与引用参数几乎相同,不同点是:

  • 引用参数的实参必须是已经赋值的变量,而输出参数不必。
  • 函数使用输出参数时,应该把它看作是未赋值的。

下面是一个例子:

代码语言:javascript
复制
namespace MyProgram{
    class Program
    {
        static int MaxValue (int[] intArray, out int maxIndex)
        {
            int maxValue = intArray[0];
            maxIndex = 0;
            for (int i = 0; i < intArray.Length; i++)
            {
                if (intArray[i] > maxValue)
                {
                    maxValue = intArray[i];
                    maxIndex = i;
                }
            }
            return maxValue;
        }
        static void Main(string[] args)
        {
            int maxIndex;
            int[] intArray = { 12, 45, 23, 77, 73 };
            int maxValue = MaxValue(intArray, out maxIndex);
            Console.WriteLine($"maxValue = {maxValue}, maxIndex = {maxIndex}.");
            Console.ReadKey();
        }
    }}

这个函数将一个数组中最大值的索引作为输出参数,返回最大值。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 mwangblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C# 中的参数数组、引用参数和输出参数
    • 参数数组
      • 引用参数
        • 输出参数
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档