c# 方法可变数量的参数
发布时间:2023-10-06 07:31:21
标签:数量,参数
声明一个可变数量的参数:
Static int Add(params int[] values)
{
int sum = 0;
if(value != null)
{
for(int x = 0;x<values.Length;x++)
sum += values[x];
}
return sum;
}
上面这个方法除去params,是一个普通的方法,接受int数组,返回组中的所以项之和。
我们可以这样调用:Add(new int[]{1,2,3});
但是阅读性不是很高,我们希望能更简洁:
Add(1,2,3);
这时,由于params关键字,是可以编译通过和运行的。
params只能应用于方法参数中的最后一个。
在c#编译器发现Add(1,2,3)时,会先寻找是否有Add(int i,int j,int k)匹配的方法,
如果有就调用,没有,就寻找是否有定义为Add(params int[] values)的方法,
如果有就把1、2、3先保存到一个数组里,然后调用Add(int[] values)方法。
这里也说明CLR对params关键字是一无所知的,params只是提供给c#编译器使用的。


猜你喜欢
- 前言:项目中数据分页是一个很常见的需求,目前大部分项目都会使用pagehelper进行分页,那么在使用的过程中是否考虑如下问题?一、基本集成
- 在Material Design里,CoordinatorLayout通常用来作为顶层视图,来协调处理各个子View之间的动作,从而实现各种
- 开发环境:jdk版本:JDK8maven版本:maven-3.5.2开发工具:Itellij IDEA 2017.1前提条件:已安装以上软件
- 在JAVA中通过synchronized语句可以实现多线程并发。使用同步代码块,JVM保证同一时间只有一个线程可以拥有某一对象的锁。锁机制实
- 之前写轮播条或者指示器的时候都是UI图里面直接有,这样的效果并不好,给用户的体验比较差,所以闲暇之余自己写了个指示器,可以展现出一个优雅的效
- Android EditText限制输入字符的方法总结最近项目要求限制密码输入的字符类型, 例如不能输入中文。 &nb
- Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话
- OAuth2简介OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个
- 这篇文章主要介绍了java io读取文件操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- WPF 实现面包屑控件框架使用.NET4 至 .NET6Visual Studio 2022创建 BreadCrumbBar.xa
- 一、JMeter后端 * 介绍说到JMeter后端 * ,必须要从源头BackendListener开始说,最后延伸到我们需要的Backen
- 1、什么是内存泄漏内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。随着
- 现在以一个例子来介绍mybatis的动态SQL和模糊查询:通过多条件查询用户记录,条件为姓名模糊匹配,并且年龄在某两个值之间。新建表d_us
- java语言里包含了许多对设计模式的直接支持,如command模式,agent模式,observer模式等。虽然java提供的对
- 一、使用Optional引言1.1、代码问题引出在写程序的时候一般都遇到过 NullPointerException,所以经常会对程序进行非
- 本文实例讲述了Android仿英语流利说取词放大控件的实现方法。分享给大家供大家参考,具体如下:1 取词放大控件英语流利说是一款非常帮的口语
- 今天我做的是一个自定义刻度尺控件,由于项目需求需要使用刻度尺那样滑动选择,由于对自定义控件的认识还不够深入,于是花了一周多时间才把这个控件给
- Java String源码分析什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这
- 目录前言整合swagger api自定义配置信息简单使用Swagger常用注解Api标记ApiOperation标记ApiParam标记Ap
- 第一,这货速度太快,第二,模仿真机环境,第三,秒杀任何Android模拟器包括真机,不多说上图,我忒忙! 官网:http://www.gen