学习了C#4.0的新特性:可选参数、命名参数、参数数组。

1、可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数。

但要注意:

(1)可选参数不能为参数列表的第1个参数,必须位于所有的必选参数之后(除非没有必选参数);

(2)可选参数必须指定一个默认值,且默认值必须是一个常量表达式,不能为变量;

(3)所有可选参数以后的参数都必须是可选参数。

2、命名参数, 是指通过命名参数调用,实参顺序可以和形参不同。

3、参数数组,通过关键字params定义参数数组。调用时可以传入个数不同的实参,具备很好的灵活性。

4、具体代码:

//可选参数
        static int Add(int a, int b = 2)
        {
            return a + b;
        }
        //参数数组,关键字params
        static int Add(params int[] p)
        {
            int sum=0;
            foreach (int i in p)
                sum += i;
            return sum;
        }

static void Main(string[] args)
        {
            Console.WriteLine(Add(1)); 
            Console.WriteLine(Add(1, 3));
            //通过命名参数调用,实参顺序可以和形参不同
            Console.WriteLine(Add(b:6, a:1));
            //调用使用了参数数组的方法
            Console.WriteLine(Add(1, 3,5));
            Console.WriteLine(Add(1, 3, 5,7));
            Console.ReadKey();
        }

转载于:https://www.cnblogs.com/xiaohua19920/p/9597542.html

C#可选参数、命名参数、参数数组相关推荐

  1. python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...

    1.位置参数 位置参数要求调用时传入函数的参数必须和定义时的位置和个数一致,即一一对应,不可缺省 def func(a,b):sum = a + breturn sum print(func(2,3) ...

  2. Python可变参数、关键字参数及命名关键字参数

    1. 可变参数 可变参数就是允许在调用参数的时候传入多个(≥0个)参数 # 可变参数,参数nums接收到的是一个tuple(这些参数在传入时被自动组组装为一个元祖) def calc(*nums):s ...

  3. Java可变参数 Python可变参数 Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

  4. python中可变参数和关键字参数_python的可变参数和关键字参数(*args **kw)

    本文是来自廖大的python教程其中我一直忘记的部分.算是一个笔记把.因为日常这俩参数名字一直搞混 可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可 ...

  5. C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数...

    方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...

  6. python可变参数和关键字参数位置_python 参数笔记 -- 位置参数 关键字参数 命名参数 形式参数 默认参数 可变参数 可选参数 位置顺序...

    这么多名称,python到底有几种参数: 2种:普通参数(即位置参数,靠位置先后来指定参数),关键字参数(即命名参数,靠名字来指定参数). 常说的可变参数也就是普参的集合,*args. 常说的关键字参 ...

  7. day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  8. day02--java基础编程:变量,数据类型,类型转换,运算规则,Scanner,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  9. golang 没有名字参数_Go 返回参数命名

    Go 返回参数命名 在Golang中,命名返回参数通常称为命名参数.Golang允许在函数签名或定义中为函数的返回或结果参数指定名称.或者可以说这是函数定义中返回变量的显式命名.基本上,它解决了在re ...

  10. java 可变参数列表 数组_java可变参数列表如何填充数组?

    在对于数组的填充上,我们可以运行参数的传递,把数组作为可变参数的列表进行调整.对于一些参数个数和类型未知的时候,这种方法就能帮助我们解决填充数组的难题,因为这种方法并不需要提前知道.下面我们就可变参数 ...

最新文章

  1. 电脑有电流声怎么解决_微星笔记本有电流声或者风扇声怎么办?
  2. 远程重启h3c路由器_【一号机房】教你怎么配置H3C路由器NAT及远程telnet
  3. 你以为的BUG--BFC给你解决!
  4. 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机网络
  5. docker安装nacos步骤
  6. vba 检查一个文件夹中的文件在另一个文件夹中是否存在(不含扩展名)
  7. FPGA实现CAN接口(SJA1000)
  8. 火山图 多个样本、_statTarget-基于QC样本的代谢组学数据校正
  9. 学习python内一般函数知识
  10. 趣学python教孩子学编程pdf免费下载_《趣学Python——教孩子学编程》——导读-阿里云开发者社区...
  11. 安卓 xdroid framework
  12. 亚马逊多账号操作如何判断关联
  13. 手机Root后如何拿取data/data目录下的文件夹到电脑上
  14. Eclipse 各种设置
  15. 三顾讯时--对讯时新闻发布系统的艰难突破
  16. C语言n层嵌套平方根的计算n
  17. 【功能安全】【ISO26262】生产和运行
  18. 【项目】智能WiFi远程灯光控制系统
  19. C++设计模式之工厂模式
  20. 各类数值型数据间的混合运算

热门文章

  1. centos7安装redis3.2.5
  2. appfog下用客户端管理你的mongodb、mysql(类似)
  3. Grails 复用查询条件并分页
  4. 阅读记录:Learning multiple layers of representation(杂乱笔记)
  5. 继续说说美国互联网版权监管法案(SOPA)
  6. 如何确定SharePoint 2007的一次增量爬网会处理多少条更新呢?
  7. Cisco ××× 完全配置指南-连载-PIX和ASA连接的故障诊断与排除
  8. 基于Eclipse的TI集成开发环境IDE-CCSv5使用教程
  9. 7 series FPGA DSP48E介绍
  10. 概率和统计的matlab指令