C#中的 具名参数 和 可选参数
来源:互联网 发布:淘宝30天最低价 编辑:程序博客网 时间:2024/06/05 21:36
具名参数 和 可选参数 是 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使用默认值5 Demo2("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",5 Demo3("similar"); // y不传入实参时,y使用默认值5 Demo3("similar", 10); // x,y都传入实参}
分先后。
b. 参数声明定义可以无顺序,但调用时必须与声明时的一致。
上面的调用只写的3种,其实还有一种,就是 x 使用默认值,y 传入实参,即 : Demo3(10);
但这样调用会报错,因为Demo3的第一个参数是 string 类型,错误消息如图:
但是现在我只想传入y, 不想传入 x ,该怎么办呢,那么就要用到 C#的 具名参数。
三. 具名参数
具名参数的使用主要是体现在函数调用的时候。
public void Main(){ //调用 Demo3(); // x,y不传入实参时,x,y使用默认值 "demo",5 Demo3("similar"); // y不传入实参时,y使用默认值5 Demo3("similar", 10); // x,y都传入实参 // 具名参数的使用 Demo3(y:10);}
通过具名参数,我们可以指定特定参数的值,这里我们通过 Demo3(y:10)就可以解决我们上面遇到的问题(x使用默认值,y使用实参)。
注: 当使用 具名参数时,调用方法可以不用管参数的声明顺序,即如下调用方式也是可以的:
在调用含有可选参数的方法时,vs中会有智能提示,提示哪些是可以选参数及其默认值,中括号表示可选[]:
以上图片由“图斗罗”提供
阅读全文
0 0
- C#中的 具名参数 和 可选参数
- C#4.0 具名参数 和 可选参数
- C#的具名参数与可选参数
- C#中命名参数和可选参数
- 具名参数
- C# 关于方法中的参数(可选参数和命名参数)
- Lua 具名实参(通过table实现可选参数函数)
- C# 可选参数 命名参数
- C# 方法可选参数
- C#定义可选参数
- VS2010与.NET4系列 17. C#4中的可选参数和命名参数
- 命名参数和可选参数
- 比较参数和可选参数
- PHP中的可变参数函数和可选参数函数
- 命名参数、可选参数和默认值参数
- Spring JDBC 具名参数
- C#可选参数的使用方法
- c#方法重载,可选参数,命名参数。
- Android 5.1获取IP
- URL与资源
- SSH框架的基本整合
- Java设计模式——代理模式(Proxy Pattern)
- mybatis学习之路----打印sql语句
- C#中的 具名参数 和 可选参数
- ORA-00911: invalid character
- 获取war包中配置文件路径API
- TypeError: super(type, obj): obj must be an instance or subtype of type
- 字符串查找(文件路径查找)
- Java 并发编程(三)线程管理
- java中的注解大全@controller、@service、@repository等
- C++11学习之匿名函数lambda表达式
- Centos技术(4)---mysql导入*.sql文件