C#中的 具名参数 和 可选参数
具名参数 和 可选参数 是 C# framework 4.0 出来的新特性。
一. 常规方法定义及调用
public void Demo1(string x, int y) { //do something... }public void Main() {//调用Demo1("similar", 22); }
调用时,参数顺序(类型)必须与声明一致,且不可省略。
二. 可选参数的声明及调用
可选参数分为两种情况: 1. 部分参数可选; 2. 全部参数都是可选
//部分可选(x为必选,y为可选) public void Demo2(string x, int y = 5) {//do something... }public void Main() {//调用Demo2("similar"); // y不传入实参时,y使用默认值5Demo2("similar", 10); // y传入实参,则使用实参10 }
注: 当参数为部分可选时, 可选参数 的声明必须定义在 不可选参数 的后面(如上: y 的声明在 x 之后),不然会出现如下错误提示:
//全部可选(x,y 均为可选参数) public void Demo3(string x = "demo", int y = 5) {//do something... }public void Main() {//调用Demo3(); // x,y不传入实参时,x,y使用默认值 "demo",5Demo3("similar"); // y不传入实参时,y使用默认值5Demo3("similar", 10); // x,y都传入实参 }
注: a. 当参数全部都为可选时,参数的声明顺序可以随意定义,不分先后。
b. 参数声明定义可以无顺序,但调用时必须与声明时的一致。
上面的调用只写的3种,其实还有一种,就是 x 使用默认值,y 传入实参,即 : Demo3(10);
但这样调用会报错,因为Demo3的第一个参数是 string 类型,错误消息如图:
但是现在我只想传入y, 不想传入 x ,该怎么办呢,那么就要用到 C#的 具名参数。
三. 具名参数
具名参数的使用主要是体现在函数调用的时候。
public void Main() {//调用Demo3(); // x,y不传入实参时,x,y使用默认值 "demo",5Demo3("similar"); // y不传入实参时,y使用默认值5Demo3("similar", 10); // x,y都传入实参 // 具名参数的使用Demo3(y:10); }
通过具名参数,我们可以指定特定参数的值,这里我们通过 Demo3(y:10)就可以解决我们上面遇到的问题(x使用默认值,y使用实参)。
注: 当使用 具名参数时,调用方法可以不用管参数的声明顺序,即如下调用方式也是可以的:
在调用含有可选参数的方法时,vs中会有智能提示,提示哪些是可以选参数及其默认值,中括号表示可选[]:
摘自:
similar
C#中的 具名参数 和 可选参数
转载于:https://www.cnblogs.com/wangfuyou/p/5007424.html
C#中的 具名参数 和 可选参数相关推荐
- C#中命名参数和可选参数
调用方法时,变量名不需要添加到调用中.比如有如下的方法用于移动矩形并在移动之后设置他的宽和高: public void MoveAndResize(int x,int y,int width,int ...
- C# ——具名参数和可选参数
简介 具名参数 和 可选参数 是 C# framework 4.0 出来的特性 转载链接 用法 一.常规方法及调用 调用时,参数顺序以及类型必须和声明一致,且不可省略. 二.可选参数的声明和调用 可选 ...
- python中可选参数是什么意思_【IT专家】python 函数参数(必选参数、默认参数、可选参数、关键字参数)...
本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 函数参数 ( 必选参数.默认参数.可选参数.关键字参数 ) 2015/09/01 30797 参考: liaoxuefeng/wik ...
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数
[索引页] [源码下载] 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barri ...
- C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数...
方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...
- python 函数参数 (必选参数、默认参数、可选参数、关键字参数)
默认参数增加 (x=None), if x: 能选择是否执行对x的操作 参考文章:python 函数参数(必选参数.默认参数.可选参数.关键字参数)
- python 函数参数(必选参数、默认参数、可选参数、关键字参数)
参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747384493 ...
- python如何定义带有可选参数的函数_python中如何正确调用带可选参数的函数
我是python的初学者,遇到了一个需要可选参数的函数的问题. 此函数获取可变数量的文件路径作为参数,可以是2到n个参数. 之后,一定数量的可选参数可以传递给这个函数. 我试过做这样的事:def co ...
- java方法可选参数_Java可选参数
java方法可选参数 在Java类中设计方法时,某些参数对于其执行而言可能是可选的. 无论是在DTO,胖模型域对象还是简单的无状态服务类中,可选方法参数都是常见的. 从本文中, 您将学习如何在Java ...
最新文章
- 计算机桌面放大镜,电脑桌面放大镜软件(OneLoupe)
- android编程中添加gif,Android应用开发之【Android】使用android-gif-drawable包加载GIF动图...
- 计算机换色带技巧,色带盒怎么更换 色带盒更换安装方法【图文教程】
- 老鼠的求爱之旅 (DP)
- lua os.date函数定义和示例
- 数据库查询前十条数据_西门子PLC1200组态王-Access数据库-⑨数据库查询
- 4-3利用神经网络解决分类和回归问题(1)
- 张朝阳直播带货首秀 带的不仅是好物而是价值平台
- Hadoop基础-配置历史服务器
- L1-051 打折 (5 分)—团体程序设计天梯赛
- windows 2003活动目录更名操作[图]
- 深圳安全研讨会圆满结束,PPT共享下载
- 使用DAEMON Tools Ultra制作Ubuntu启动U盘全过程(含图文)
- 解决egret引擎List虚拟布局不同高度Item对象重用时导致的布局异常问题
- 修改加入SGE集群某队列里各个执行机的cpu数(slots)
- Excel引用函数-实例1
- 不知道如何选用笔记本电脑的快来看看
- TCP协议与UDP协议详解
- bzoj 4833: [Lydsy1704月赛]最小公倍佩尔数
- 【转】超星转PDF最佳方法(对打印机重新审视)
热门文章
- Linux Server - NAT
- 编码实现字符串转整型的函数(实现函数atoi的功能)
- tensorflow 模型预训练后的参数restore finetuning
- Mysql创建、删除用户
- 线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
- Java8之lambda表达式的总结
- RegExp:正则表达式对象 || Global对象
- java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现
- JSplitPane
- 搭建JAVA可视化开发环境