C#的参数数组

概念:

参数数组(也称为可变参数)可以来向方法传递可变数量的参数。

参数数组允许您以一种更灵活的方式定义和调用方法,而无需提前指定参数的数量。以下是使用参数数组的步骤:

1. 定义参数数组:

在方法的参数列表中,使用关键字 params 来定义参数数组。参数数组的类型可以是任意类型,例如 int\[\]、string\[\] 等。

cs 复制代码
public void Method(params int[] nums)
{
    // 方法体
}

2. 调用方法:

在调用方法时,您可以传递任意数量的参数,甚至可以不传递参数。传递的参数将被作为数组传递给方法。

cs 复制代码
Method(1, 2, 3, 4); // 直接传递多个参数
Method(); // 不传递参数

3. 在方法内部使用参数数组:

在方法体中,您可以像处理常规数组一样处理参数数组。可以使用 foreach 循环、索引访问、数组长度等来操作参数数组。

cs 复制代码
public void Method(params int[] nums)
{
    foreach (int num in nums)
    {
        Console.WriteLine(num);
    }
}

参数数组使方法调用更加方便灵活,特别适用于需要处理未知数量参数的情况。它简化了方法的重载,避免了方法重复定义和调用多个重载方法的麻烦。

4、简单练习demo

cs 复制代码
class Program
{
    static int Add1(int a, int b)
    {
        return a + b;
    }
    static int Add2(int[] array)
    {
        int sum = 0;
        foreach (int temp in array)
        {
            sum += temp;
        }
        return sum;
    }
    // 参数数组
    static int Add3(params int[] array)// 可以传递任意个数的参数(params) 
    {
        int sum = 0;
        foreach (int temp in array)
        {
            sum += temp;
        }
        return sum;
    }
    static int Add4(string name, params int[] array)// 必须位于最后一位 参数数组
    {
        int sum = 0;
        foreach (int temp in array)
        {
            sum += temp;
        }
        return sum;
    }
    static void Main(string[] args)
    {
        int sum1 = Add2(new int[] { 1, 2, 3, 4 });
        Console.WriteLine(sum1);

        int[] array2 = { 1, 2, 3, 4, 5 };
        int sum2 = Add2(array2);
        Console.WriteLine(sum2);

        int sum3 = Add3(1, 2, 3, 4, 5);
        Console.WriteLine(sum3);
    }
}
相关推荐
小小龙学IT2 分钟前
Go 语言后端开发:从并发模型到生产落地的工程实践
开发语言·后端·golang
程序员cxuan9 分钟前
Agents.md 是什么
人工智能·后端·程序员
ytttr87315 分钟前
Qt 数字键盘实现
开发语言·qt
wearegogog12318 分钟前
C# .NET 文件比较工具 WinForms
开发语言·c#·.net
再写一行代码就下班22 分钟前
Cursor配置Java环境、创建Spring Boot项目的步骤
java·开发语言·spring boot
零陵上将军_xdr25 分钟前
后端转全栈学习-Day5-JavaScript 基础-3
开发语言·javascript·学习
摇滚侠25 分钟前
Java 零基础全套教程,类的加载过程与类加载器的理解,笔记 189
java·后端·intellij-idea
ServBay33 分钟前
为什么我劝你不要在Mac上用Docker 进行本地 AI 开发
后端
oqX0Cazj234 分钟前
2026超火Go-Zero实战:从架构原理到高并发接口落地,彻底解决接口超时、雪崩问题
开发语言·架构·golang
蝎子莱莱爱打怪36 分钟前
XZLL-IM干货系列 02|Protobuf 协议设计:从 JSON 切到二进制,每条消息省了 60%
后端·面试·架构