C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?

使用params关键字,就可以像python传参那样传递多个参数,类似元组

主要作用

params 关键字的主要作用是让方法可以接受不定数量的参数,而不需要在调用方法时显式地创建数组来传递多个参数。这为方法调用提供了更大的灵活性,使得代码更加简洁和易于使用。

使用方式

params 关键字必须用于一维数组类型的参数,并且该参数必须是方法参数列表中的最后一个参数。以下是基本的语法结构:

返回类型 方法名(参数1, 参数2, ..., params 数组类型[] 参数名)
{
    // 方法体
}

示例代码

简单的求和方法示例
using System;

class Program
{
    // 定义一个使用 params 关键字的方法
    static int Sum(params int[] numbers)
    {
        int sum = 0;
        foreach (int num in numbers)
        {
            sum += num;
        }
        return sum;
    }

    static void Main()
    {
        // 调用方法时可以传递任意数量的参数
        int result1 = Sum(1, 2, 3);
        int result2 = Sum(10, 20, 30, 40);
        int result3 = Sum(); // 也可以不传递参数

        Console.WriteLine($"结果1: {result1}");
        Console.WriteLine($"结果2: {result2}");
        Console.WriteLine($"结果3: {result3}");
    }
}

Sum 方法使用 params 关键字定义了一个 int 类型的数组参数 numbers。在 Main 方法中调用 Sum 方法时,可以传递任意数量的 int 类型参数,甚至可以不传递参数。

结合其他参数使用
using System;

class Program
{
    static void PrintInfo(string message, params int[] numbers)
    {
        Console.WriteLine(message);
        foreach (int num in numbers)
        {
            Console.Write(num + " ");
        }
        Console.WriteLine();
    }

    static void Main()
    {
        PrintInfo("以下是一组数字:", 1, 2, 3, 4, 5);
    }
}

PrintInfo 方法有一个普通的 string 类型参数 message 和一个使用 params 关键字的 int 类型数组参数 numbers。调用该方法时,首先传递 string 类型的参数,然后可以传递任意数量的 int 类型参数。

注意事项

  • 只能有一个 params 参数:一个方法的参数列表中只能有一个 params 参数,并且它必须是最后一个参数。
  • 不能与其他数组参数重载:由于 params 参数本质上是一个数组,因此不能定义与 params 参数仅在是否使用 params 关键字上有区别的重载方法。例如,以下代码会导致编译错误:
// 错误示例,会导致编译错误
static void Method(params int[] numbers) { }
static void Method(int[] numbers) { }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr.勿忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值