c# 方法可变数量的参数
更新时间:2020年6月25日 11:43 点击:2436
声明一个可变数量的参数:
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#编译器使用的。
复制代码 代码如下:
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#编译器使用的。
上一篇: c# 正则指引--字符组
下一篇: c# 所有类型都从Object类型派生
相关文章
- 这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
- 这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
- 这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
废话不多说了,直接给大家贴代码了。<?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- mysql安装成功后有几个默认的配置模板,列表如下: my-huge.cnf : 用于高端产品服务器,包括1到2GB RAM,主要运行mysql my-innodb-heavy-4G.ini : 用于只有innodb的安装,最多有4GB RAM,支持大的查询和低流量 my-large.cnf : 用于...2015-03-15
- 这篇文章主要介绍了C#泛型的类型参数约束的相关资料,文中讲解非常细致,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2020-07-31
- 这篇文章主要给大家介绍了关于C#中out参数、ref参数与值参数的用法及区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
处理@PathVariable注解允许参数为空、允许不传参数的问题
这篇文章主要介绍了处理@PathVariable注解允许参数为空、允许不传参数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-23- 这篇文章主要介绍了Java线程池中的各个参数如何合理设置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-19
- 这篇文章主要介绍了详解Java后端优雅验证参数合法性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
- 这篇文章主要介绍了SpringBoot接口接收json参数解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-19
- 这篇文章主要介绍了vue+axios全局添加请求头和参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-24
- 这篇文章主要介绍了pytorch 实现冻结部分参数训练另一部分,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-27
- 这篇文章主要介绍了C#向线程中传递多个参数的解决方法(两种)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了spring cloud gateway中如何读取请求参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-15
- 这篇文章主要介绍了Postman参数化实现过程及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-13
- 这篇文章主要介绍了使用JavaScript获取URL中的参数(两种方法)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-11-22
- 这篇文章主要介绍了Vue中 axios delete请求参数操作,具有很好的参考价值,希望对大家有所 帮助。一起跟随小编过来看看吧...2020-08-26
- 这篇文章主要介绍了SpringMvc自动装箱及GET请求参数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19