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

本文介绍了C#中命名参数和可选参数的使用。命名参数允许调用者通过参数名指定值,提高代码可读性,同时可以改变参数顺序。可选参数则允许不提供参数值,常设定默认值。两者的结合使用让方法调用更加灵活,特别是在有多个可选参数时,命名参数能确保正确传递所需参数,而不受参数顺序限制。
摘要由CSDN通过智能技术生成

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

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);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值