https://www.xin3721.com/eschool/

定义可选参数

为了指定一个参数是可选的,可以在定义方法时为该参数提供一个默认值。默认值是 使用赋值操作符来赋予的。在下面的 optMethod 方法中,第一个参数是必须的,因为它没 有提供默认值,但第二个和第三个参数是可选的:

void optMethod(int first, double second = 0.0, string third = "Hello")

{

...

}

所有可选的参数都只能放在必须的参数之后。调用支持可选参数的一个方法时,采用的方 式和调用其他任何方法无异。都是指定方法名,并提供任何必须的参数(实参)。区别在于, 调用支持可选参数的方法时,可省略对应的实参。方法运行时,会为这些省略的实参使用 默认值。在下例中,第一个 optMethod 方法调用为全部 3 个参数都提供了值。第二个调用 则只指定了两个实参,这些值应用于第一个和第二个参数。方法运行时,第三个参数将使 用默认值"Hello"。

optMethod(99, 123.45, "World"); // 全部3 个参数都提供了实参

optMethod(100, 54.321); // 只为前两个参数提供了实参

3.4.2 传递命名参数

C#默认根据每个实参在方法调用中的位置判断它们对应于哪个形参。所以,在上一节 的第二个示例方法调用中,两个实参分别传给 optMethod 方法的 first 和 second 形参,因为 它们在方法声明中的顺序如此。现在,C#还允许按照名称指定参数。利用这个功能,就可 以按照不同的顺序传递实参了。为了将一个实参作为命名参数来传递,必须输入参数名, 一个冒号,然后是要传递的值。下例执行和上一节的例子相同的功能,只是参数按名称来 指定:

optMethod(first : 99, second : 123.45, third : "World");

optMethod(first : 100, second : 54.321);

利用命名参数,实参就可以按任意顺序传递。可以像下面这样重写调用 optMethod 方法的 代码:

optMethod(third : "World", second : 123.45, first : 99);

optMethod(second : 54.321, first : 100);

这个功能还允许你省略实参。例如,调用 optMethod 方法时,可以只指定 first 和 third 这 两个参数的值,second 参数则使用默认值。如下所示:

optMethod(first : 99, third : "World");

另外,还可兼按位置和名称来指定实参。然而,如果使用这个技术,必须先指定好所有按 照位置的实参,再指定命名的实参:

optMethod(99, third : "World"); // 第一个实参是按位置来定的

python可选参数定义_c#教程之定义可选参数相关推荐

  1. c语言宏定义_C语言宏定义

    C语言的宏,是C的一大特点,宏定义可以用来定义常量,函数,为了全局替换起来方便. 比如: #define PIE 3.1415926 再比如: #define MAX(a,b) ( (a)>(b ...

  2. c语言解除宏定义_C语言宏定义 define,及一些陷阱!

    https://m.toutiaocdn.com/group/6584292311289561607/?iid=39362926900&app=news_article&timesta ...

  3. 教程 参数设置_UG教程之非切削参数设置

    转移/快速 转移/快速指定如何从一个切削刀路移动到另一个切削刀路.通常情况下,刀具需要进行以下3个动作: (1)从其当前位置移动到指定的平面. (2)移动到指定平面内高于进刀运动起点的位置. (3)最 ...

  4. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...

    参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...

  5. python定义构造函数、包括颜色价格品牌_《Python编程与算法基础教程》(第二版),蒋洪宇,青松,第9章:课后练习,程序设计,版江红余,第九章,习题,答案...

    例9.1~例9.53 补充: 类名为有效的标识符,一般为多个单词组成的名称,每个单词除第一个字母大写外,其余的字母均小写 一:类对象和实例对象 例9.1(创建类对象和实例对象) >>> ...

  6. pythonnamedtuple定义类型_python - namedtuple和可选关键字参数的默认值

    python - namedtuple和可选关键字参数的默认值 我正在尝试将一个冗长的空洞"数据"类转换为一个命名元组. 我的班级目前看起来像这样: class Node(obje ...

  7. python函数参数定义顺序_Python函数定义-位置参数-返回值

    原标题:Python函数定义-位置参数-返回值 1 函数介绍 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多 ...

  8. python中形参可以使用中文定义嘛_python中函数的参数分类

    详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...

  9. python def函数参数_Python def函数的定义、使用及参数传递实现代码

    Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为: def 函数名(参数1, 参数2, --, 参数N): 执行语句函数名为调用的表示名,参数则是传入的参数,可以更具需要 ...

最新文章

  1. 独家 | 手把手教你用Python进行时间序列分解和预测
  2. List和List的区别?
  3. opencv检测黑色区域
  4. 路由器OSPF协议配置命令一
  5. element-ui踩坑
  6. 一个北京小网编从1000块起家的网络直销故事
  7. Lombok介绍、附比较好用的几种注释推荐
  8. 【qt】QT 的信号与槽机制
  9. 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet
  10. CVE-2012-4792Microsoft Internet Explorer 释放后使用漏洞
  11. linux tensorflow demo_独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
  12. java组合数打印出结果_Java打印一组数据中,抽取固定数目的数的所有可能组合...
  13. ActiveMQ(4) ActiveMQ JDBC 持久化 Mysql 数据库
  14. java导入功能超时问题
  15. StuQ IT技能图谱全集
  16. 万豪集团精细化在华发展策略;完美日记母公司将收购护肤品牌Eve Lom;赛生药业港交所主板挂牌上市 | 美通企业日报...
  17. 利用arduino给PCB800099液晶驱动板烧录程序
  18. 【python基础】猜数字游戏
  19. JS+CSS实现页面滚动切换图片(从边角扩散)的效果
  20. excel报错无法粘贴信息,原因复制区域跟粘贴区域形状不同

热门文章

  1. 甲骨文推出新的云服务 协助企业顺利迁移至云端
  2. 【转载】关于RabbitMQ的高可用性
  3. T-SQL 常用日期格式
  4. ZZULIOJ 计算两点间的距离(多实例测试)
  5. plsql删除大量数据_一次oracle大量数据删除经历
  6. 信息学奥赛一本通(1218:取石子游戏)
  7. 图论 —— 图的连通性
  8. 最小总代价(洛谷-U17433)
  9. 迷宫(洛谷-P1605)
  10. 与指定数字相同的数的个数(信息学奥赛一本通-T1068)