C#参数数组params的使用方法

news/2024/10/17 18:35:05/

在 C# 中,params关键字用于指定一个方法参数可以接受可变数量的参数。调用时可以传入个数不同的实参,具备很好的灵活性。

首先看一个案例

 class Program{public static void useParams(params int[] list){for (int i = 0; i < list.Length; i++){Console.WriteLine(list[i]);}}public static void useParams1(params object[] list){for (int i = 0; i < list.Length; i++){Console.WriteLine(list[i]);}}static void Main(string[] args){useParams(1, 2, 3);Console.WriteLine();useParams1(1, 's', "bnc");Console.WriteLine();int[] myarray = new int[3] { 11, 22, 33 };useParams(myarray);Console.ReadKey();}}

输出结果如下:

使用参数数组的注意事项:

1.位置要求:该参数必须是方法参数列表中的最后一个参数。

2.唯一性:在一个方法中只能有一个 “params” 参数,不能有多个 “params” 参数同时存在。

3.参数类型:“params” 关键字可以与任何类型配合使用,不仅仅局限于整数类型。比如可以定义 “params string []” 来接受可变数量的字符串参数。

4.不允许ref 或者out params数组

 如:public static void useParams( ref params int[] list)    //编译时报错

         public static void useParams(out params int[] list)   //编译时报错

5.非params方法优先于一个params方法,也就是说如果愿意,可以为普通情况创建一个方法的重载版本。

如: public static void useParams(int i1,int i2)优于 public static void useParams(params int[] list)第一个先被调用。

6.params关键字不构成方法参数签名的一部分。

 如:public static void useParams( int[] list) 和 public static void useParams(params int[] list) 方法参数相同不可重载。


http://www.ppmy.cn/news/1532682.html

相关文章

javaScript中的浅拷贝和深拷贝详解

在 JavaScript 中&#xff0c;浅拷贝 和 深拷贝 的主要区别在于它们如何处理对象中的嵌套对象&#xff08;即对象的属性也是对象的情况&#xff09;。 1. 浅拷贝&#xff1a; 浅拷贝只复制对象的第一层属性。如果对象的属性是一个引用类型&#xff08;如对象或数组&#xff0…

【图像处理】多幅不同焦距的同一个物体的平面图象,合成一幅具有立体效果的单幅图像原理(一)

合成一幅具有立体效果的单幅图像&#xff0c;通常是利用多个不同焦距的同一物体的平面图像&#xff0c;通过图像处理技术实现的。以下是该过程的基本原理&#xff1a; 1. 立体视觉原理 人眼的立体视觉是通过双眼观察物体的不同视角而获得的。两只眼睛的位置不同&#xff0c;使…

Go基础学习05-数组和切片关系深度解析

切片和数组的联系 数组&#xff08;array&#xff09;和切片&#xff08;slice&#xff09;都属于集合类的类型&#xff0c;它们的值也都可以用来存储某一种类型的值&#xff08;或者说元素&#xff09;。数组和切片最重要的不同在于&#xff1a; 数组类型的值的长度是固定的…

模拟实现(优先级队列)priority_queue:优先级队列、仿函数、 反向迭代器等的介绍

文章目录 前言一、优先级队列二、仿函数三、 反向迭代器总结 前言 模拟实现&#xff08;优先级队列&#xff09;priority_queue&#xff1a;优先级队列、仿函数、 反向迭代器等的介绍 一、优先级队列 优先级队列本质是一个堆&#xff0c;使用vector容器进一步改进进行实现&am…

TFTP协议

目录 一、TFTP协议概述 1.1 TFTP协议简介 1.2 TFTP协议特点 二、TFTP协议原理 2.1 TFTP协议工作流程 2.2 TFTP协议数据包格式 三、TFTP协议应用场景 3.1 网络设备配置文件传输 3.2 虚拟机镜像文件传输 3.3 IoT设备固件升级 四、TFTP协议优化方法 4.1 增加超时重传机…

56 mysql 用户权限相关的实现

前言 这里讨论 mysql 的权限相关处理 使用如下语句创建 tz_test 用户, 并赋予他 test_02 数据库的查询权限 create user tz_test% identified by tz_test; grant select on test_02.* to tz_test%; 查询目标数据表, 数据如下, tz_test_02 UPDATE command denied to user …

QT 界面编程中使用协程

QT 界面编程中使用协程 一、概述二、集成2.1、编译 Acl2.2、将 Acl 库集成到 QT 项目中2.3、开始编写代码2.3.1、QT 程序初始化时初始化 Acl 协程2.3.2、在界面中创建协程2.3.3、界面程序退出前需要停止协程调度2.3.4、在界面线程中下载数据2.3.5、在协程中延迟创建窗口 2.4、效…

HUAWEI WATCH GT 系列安装第三方应用

文章目录 适用机型概述官方文档从源码构建 hap 文件和对源码签名下载和安装DevEco Studio下载和安装首次启动推荐&#xff1a;设置IDE推荐的兼容版本环境&#xff08;可选&#xff09;安装并启用中文菜单插件 使用DevEco Studio打开项目并进行构建构建问题解决一、生成密钥和证…