C#中的关键字params的用法

C#中有一个关键字params,它相对于一些主要关键字来说,还算是较为低频的,但也会用到。我们可以了解和学习下。

一、定义及约束

params关键字的作用在于可以让方法参数的数目可变。

params的参数类型必须是一维数组。

一旦在方法加入了params关键字之后,它的后面就不能再有任何其它参数了。换句话说就是,params必须放在方法的所有参数的最后。

方法中只能允许一个params关键字。

public void 做饭(家庭成员 主厨, 家庭成员 洗菜)
{}public void 做饭(params 家庭成员[] members)
{}

如上图,我们有一个“做饭”的方法,做饭的时候,可能有1个人去做饭,也可能2个,也还可能3个人。就是说,我们不确定到时候到底有几个人想去做饭,如果我们把“做饭”这个方法的参数写死,就限制了只能2个人去,如果要再加一个人去帮忙,该方法就不适用了,需要重载。

在不使用重载的情况下,您直接使用params关键字,可以一次性解决将来的业务问题。比如某天做饭的时候,没一个人想做饭,大家就只能点外卖喽。

二、使用

调用包含有params参数的方法时:

1.可以传入按数组元素类型指定的参数的逗号分隔列表。如下图红圈,直接逗号传入。
在这里插入图片描述
2.直接传入方法中指定的数组元素类型的数组。如下图,数组传入:
在这里插入图片描述
3.允许传0个参数,即不使用该参数都是可以的。无参数时,params列表的长度有值且为0。如下图,不传参数亦可:
在这里插入图片描述

三、使用场景举例

params的使用场景在于您不确定方法中该含有几个参数的时候使用。

像上面有说过,比如做饭时,您不确定几人参与,就可以使用。

又比如学校的班级系统,统计科目与分数之前的关系,在科目不确定的情况下,可能会使用上这个参数。

又比如Revit二次开发时,需要用户在界面上选点,但是用户选几个点,事先是不知道的,所以用params关键字就很好使。

又比如,我们可能会一些生产作业系统,需要监控一些关键数据,我们想监控哪些,在生产实操时,可能是变化的,就可以使用params关键字。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ list详解以及模拟实现

目录 1.list的使用 1.1list的定义 1.2list的使用 1.3list iterator使用 1.4list capacity 1.5list element access 1.6list增删查改 2.list迭代器失效问题 3.list的模拟实现 1.list的使用 1.1list的定义 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容…

Redis之Sentinel模式安装文档

下载 官网地址 http://download.redis.io/releases/ 1、环境: 127.0.0.1 127.0.0.2 127.0.0.3 2、创建目录,创建redis用户,解压Redis安装包 mkdir -p /u01/redisgroupadd redisuseradd -g redis redis chown -R redis:redis /u01/redis/ su - redis tar -zxvf redis-5…

【深度学习笔记】4_4 自定义层

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 4.4 自定义层 深度学习的一个魅力在于神经网络中各式各样的层,例如全连接层和后面章节中将要介绍的卷积层、池化层与循环层…

240Hz高刷电竞显示器 - HKC VG253KM

🎉🎉🎉 各位电竞爱好者们,今天给大家带来一款神秘武器,一款能够让你在游戏中大展拳脚的高刷电竞显示器 - HKC VG253KM!🔥🔥🔥 这款显示器,哎呀,真…

10分钟快速开始SkyWalking结合Springboot项目

10分钟快速开始SkyWalking结合Springboot项目 实习期间,公司让我去学习一下链路追踪如何集成到Springboot项目中。 为此有两个方案: 1.opentelementryjaegerprometheus opentelementry 收集器收集线上的metrics和traces,然后发送给jaeger和p…

IP对讲终端SV-6002(防水)

SV-6002(防水)是一款IP对讲终端,具有10/100M以太网接口,其接收网络的音频数据,解码后播放,外部DC12~24V电源供电端子,提供单路2W的音频输出。基于TCP/IP网络通信协议和数字音频技术,…

低代码开发如何助力数字化企业管理系统平台构建

随着数字化时代的到来,企业对于管理系统的需求日益增长。高效的管理系统可以提高企业的运作效率,降低成本,提升竞争力。然而,传统的开发方式在应对日益复杂的管理系统需求时,显得力不从心。低代码开发作为一种新兴的开…

Vue笔记(一)

常用指令 1.v-show与v-if底层原理的区别 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>创建一个V…

OpenGL ES 3.0 从入门到精通系统性学习教程

为什么要写这个教程 因为在工作中频繁使用 OpenGL ES 做一些特效、滤镜之类的效果&#xff0c;加上平时学到的的知识点也比较细碎&#xff0c;就想着去系统地学习下 OpenGL ES 相关开发知识&#xff0c;并将学习过程记录下来。 准备知识 一些同学反映&#xff0c;学习这个教…

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库Quad SPI总线实现FATS文件操作W25Q各型号…

redis持久化失败问题(MISCONF Redis is configured to save RDB snapshots, but ......)问题解决

今天同事反应测试环境业务一直报错&#xff0c;好像是redis持久化出现了问题&#xff0c;并给出了错误信息&#xff0c;让我帮忙看一下&#xff0c;说明明还有2G内存为何还会报错 MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persis…

mysql 安装 与 使用

1.安装地址&#xff08;社区免费版本&#xff09; https://dev.mysql.com/downloads/mysql/ 2.查看端口 ****是否被占用&#xff08;例子 3306端口&#xff09; netstat -an | find "3306" 3.配置环境 系统变量名 变量名&#xff1a;MYSQL_HOME 变量值&#…

第十三天-mysql交互

目录 1.安装MySQL connector 方式1&#xff1a;直接安装 方式2&#xff1a;下载 2.创建链接 3.游标Cursor 4.事务控制 5. 数据库连接池 1. 使用 6.循环执行SQL语句 不了解mysql的可以先了解mysql基础 1.安装MySQL connector 1. MySQL connector 是MySQL官方驱动模块…

jmeter 按线程数阶梯式压测数据库

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 JMeter 通过 bzm - Concurrency Thread Group 来实现阶梯式压测&#xff0c;它并不是JMeter的官方插件&#xff0c;而是一种由Blazemeter提供的高级线程组插件。可以在不同的时间内并发执行不同数量的线程&#xff0c;模拟…

音频常用测试参数

一、总谐波失真&#xff08;THDN&#xff09; 总谐波失真指音频信号源通过功率放大器时&#xff0c;由于非线性元件所引起的输出信号比输入信号多出的额外谐波成份。谐波失真是由于系统不是完全线性造成的&#xff0c;我们用新增加总谐波成份的均方根与原来信号有效值的百分比来…

MySQL之Pt-kill工具

工具下载 [rootlocalhost1 bin]# wget percona.com/get/percona-toolkit.tar.gz [rootlocalhost1 bin]# yum install perl-DBI [rootlocalhost1 bin]# yum install perl-DBD-MySQL [rootlocalhost1 bin]# ./pt-kill --help1、每10秒检查一次&#xff0c;发现有 Query 的进程就…

3D生成式AI模型与工具

当谈到技术炒作时&#xff0c;人工智能正在超越虚拟世界&#xff0c;吸引世界各地企业和消费者的注意力。 但人工智能可以进一步增强虚拟世界&#xff0c;至少在某种意义上&#xff1a;资产创造。 AI 有潜力扩大用于虚拟环境的 3D 资产的创建。 AI 3D生成使用人工智能生成3D模…

开发知识点-.netC#图形用户界面开发之WPF

C#图形用户界面开发 NuGet框架简介WinForms(Windows Forms):WPF(Windows Presentation Foundation):UWP(Universal Windows Platform):MAUI(Multi-platform App UI):选择控件参考文章随笔分类 - WPF入门基础教程系列

什么时候要用到Reflect API?

参考文档 https://www.zhihu.com/question/460133198 https://cn.vuejs.org/guide/extras/reactivity-in-depth.html https://juejin.cn/post/7103764386220769311 Reflect API 一般搭配 Proxy API 一起使用。什么是 Proxy API 呢&#xff1f; 先回顾下 vue 的数据响应性是如何…

投票项目_注册功能版本迭代

V0版本: 简单的注册,前端先进行初步核对,两次输入的密码是否相等?用户账号和密码是否符合要求?核对成功后前端传来账号密码,拿到用户名去数据库核对,如果没有找到相同的用户名就插入到数据库,找到相同的用户名就返回”用户已存在” V1版本: 加入了uuid 1. 导入依赖 <!-- …