C#中命名参数和可选参数

调用方法时,变量名不需要添加到调用中。比如有如下的方法用于移动矩形并在移动之后设置他的宽和高:

public void MoveAndResize(int x,int y,int width,int height)

有两种调用方式:
1. MoveAndResize(10,20,30,40); 

2. MoveAndResize(x: 10,y: 20,width: 30,height: 40);

第一种方式是常用的也非常简单,但是从调用上看不出来所用参数的含义。
第二种方式采用了命名参数,也就是:参数名 : value   的形式,这种方式可以直观的体现初始化什么参数,还可以更改调用顺序,比如:

MoveAndResize(y: 20,x: 10,width: 30,height: 40);

但是第二种方式用起来比较繁琐,实际在编辑器中也有代码提示等相关的功能,比如鼠标放在方法名上,原方法的相关的定义都出现了。
不过命名参数的实际用处在于他和可选参数的结合使用。可选参数:顾名思义,在方法调用的时候可以不用给该参数赋值。比如下面的方法有一个参数:isTest,当 isTest 为 true 时,进行某些操作:

public void Test(int a , bool isTest = false)

在调用的时候当我不需要与第二个参数相关功能的时候可以不用赋值:

Test(10);

可选参数使用:必须要为该参数设置默认值,而且可选参数必须放在函数参数列表的最后。
命名参数与可选参数的结合使用,比如现在有一个方法:

public void TestM(int a ,int b = 1 , int c = 2, bool d = false , string e = "test")

当我调用的时候,如果只想用到其中的 a,d 参数怎么办?,可以这样调用
1. 将 d 前面的参数全部初始化,其中可选参数用默认值初始化:

    TestM(2,1,2,true);

2. 使用命名参数:

    TestM(2,d: true);

注意上面的情况,当有多个可选参数时,命名参数的作用凸显,可以传递任何可选参数而不关心到底有几个可选参数和他们的顺序。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值