失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C#中的 具名参数 和 可选参数

C#中的 具名参数 和 可选参数

时间:2023-11-04 04:10:23

相关推荐

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#中的 具名参数 和 可选参数

如果觉得《C#中的 具名参数 和 可选参数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。