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);
    }
}
相关推荐
Hui Baby19 小时前
全局事务入口感知子事务方法-TCC
java·开发语言·数据库
laozhoy119 小时前
深入理解Go语言errors.As方法:灵活的错误类型识别
开发语言·后端·golang
周杰伦_Jay19 小时前
【Go 语言】核心特性、基础语法及面试题
开发语言·后端·golang
周杰伦_Jay19 小时前
【Python开发面试题及答案】核心考点+原理解析+实战场景
开发语言·python
前端不太难19 小时前
RN Hooks 设计规范与反模式清单
开发语言·php·设计规范
HyperAI超神经19 小时前
【vLLM 学习】vLLM TPU 分析
开发语言·人工智能·python·学习·大语言模型·vllm·gpu编程
czlczl2002092519 小时前
Spring Boot 参数校验进阶:抛弃复杂的 Group 分组,用 @AssertTrue 实现“动态逻辑校验”
java·spring boot·后端
ForteScarlet19 小时前
如何解决 Kotlin/Native 在 Windows 下 main 函数的 args 乱码?
开发语言·windows·kotlin
月殇_木言20 小时前
应用层自定义协议与序列化
开发语言
a努力。20 小时前
网易Java面试被问:偏向锁在什么场景下反而降低性能?如何关闭?
java·开发语言·后端·面试·架构·c#