C# params 关键字详解

params 关键字用于声明参数数组 ,允许方法接受可变数量的参数 。它是创建可变参数方法的便捷方式。

基本语法

复制代码
// params 参数必须是方法最后一个参数
public void Method(params int[] numbers)
{
    // numbers 是一个 int 数组
}

// 调用时可以传递任意数量的参数
Method(1, 2, 3, 4, 5);
Method(10, 20);
Method();  // 也可以不传递参数

使用示例

1. 基础用法

复制代码
public int Sum(params int[] numbers)
{
    int total = 0;
    foreach (int num in numbers)
    {
        total += num;
    }
    return total;
}

// 调用
int result1 = Sum(1, 2, 3);           // 6
int result2 = Sum(10, 20, 30, 40);    // 100
int result3 = Sum();                  // 0

2. 与其他参数结合

复制代码
// params 必须是最后一个参数
public string Format(string format, params object[] args)
{
    return string.Format(format, args);
}

// 调用
string result = Format("姓名:{0},年龄:{1},成绩:{2}", "张三", 20, 95.5);

3. 传递数组

复制代码
// 可以直接传递数组
public void Process(params string[] items)
{
    foreach (var item in items)
    {
        Console.WriteLine(item);
    }
}

// 调用方式1:传递多个参数
Process("A", "B", "C");

// 调用方式2:传递数组
string[] array = { "X", "Y", "Z" };
Process(array);  // 会自动识别为 params 参数

// 调用方式3:空参数
Process();  // 传递空数组
相关推荐
橙橙笔记5 分钟前
Python学习第三部分
开发语言·python·学习
huainingning8 分钟前
个人版WorkBuddy编写设备巡检并导出设备配置python脚本
开发语言·python
Java后端的Ai之路21 分钟前
02、Python普通工厂模式
开发语言·人工智能·python·设计模式·普通工厂模式
淡海水31 分钟前
03-03-线性-LinkedList-T-源码不变式与选择边界
windows·链表·c#·编译·linkedlist·clr·机器码
韶博雅1 小时前
开启补充日志
java·开发语言·sql
被怪兽吃掉了1 小时前
5.2.1一维组数定义方式
开发语言·c++·算法
TheBestRucy1 小时前
Python 九阳神功之肆:网络编程 · Socket 从入门到实战
开发语言·网络·python
j7~1 小时前
【C++】《C++二叉搜索树(BST)从入门到精通:概念、实现与Key/Value模型全解析》
开发语言·c++·学习·二叉搜索树
hehelm1 小时前
仿muduo库实现高并发服务器—Channel类
linux·服务器·开发语言·网络·c++
末代iOS程序员华仔1 小时前
Codex + Figma 生成 Objective‑C (UIKit) 完整工作流
c语言·开发语言·figma