C#的具名参数与可选参数

原创 2016年08月30日 15:12:03

最近在学习PHP ,在学习到重载这个地方的时候,想到了C# 4.0 之后添加的新功能:具名参数 和可选参数(可选参数,参数数组)

实例

//  给方法的参数一个默认值 ,便可以  可选参数调用
 static void ParamFun(int x=0,int y=0 ,int z =0)
 {
     Console.WriteLine(string.Format("{0},{1},{2}",x,y,z));
 }

// 方法重载 : 参数数组
 static void ParamFun(params int[] p)
 {
     foreach (var i in p)
     {
         Console.WriteLine(i);
     }
 }
// 客户端调用
 static void Main(string[] args)
 {
     ParamFun(y:2);
     ParamFun(1, 2, 3);
 }

语法

以下为参考实例:

//声明一个M方法,其中第二个,第三个参数是 包含默认值 的选用参数。

public void M (int x,int y = 5,int z= 7);

//声明方法与调用方法与javascript 简直如出一辙

M(1,2,3); // 标准调用法
M(1,2); // 忽略Z参数等用于 调用M(1,2,7),调用了Z的默认值
M(1);//同理 ,M(1,5,7)

C# 4.0 虽然支持具名参数 与选用参数,不过不允许你这样写:
M(1, , 3)//C# 不允许忽略参数输入

C# 4.0 具名参数与选用参数 语法如下:
M(1,z:3); //想忽略第二个参数,那第三个参数就用具名参数的写法
M(x:1,z:3); //也可全部使用具名参数的写法。
M(z:3,x:1); //传入的具名参数 不需要考虑顺序

补充:

PHP 语法:

ParamFun(1,'WYS');

function ParamFun($x=0,$y=0,$z=0){
    echo $x."</br>";
    echo $y."</br>";
    echo $z."</br>";
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

C#终于支持可选参数了!

今天偶然看了一下C#4.0的新特性, 第一个新特性就令我兴奋不已, 曾经一度令我使用C#很不习惯的"死参数"问题终于搞定了. 实在太爽了! 过去用C++, VB.NET的时候都很爽, 开始用C...
  • linshichen
  • linshichen
  • 2016年10月04日 14:56
  • 875

Lua 具名实参(通过table实现可选参数函数)

什么是具名实参具名实参:指具有名称的实参。实现方式将所有实参组织到一个table中,并将这个table作为唯一的实参传给函数。使用具名实参的好处对于参数很多的函数,有时很难记住参数的名字和参数的顺序以...
  • v_xchen_v
  • v_xchen_v
  • 2017年09月01日 15:58
  • 379

C#4.0 具名参数 和 可选参数

C# 4.0中的可缺省参数 C# 4.0现在对方法,构造器,以及索引器支持使用可缺省的参数(注:VB支持可缺省参数可是有年头了)。 当参数的默认值作为声明的一部分被指定的时候,参数就是可缺省的。例...
  • haitaoDoit
  • haitaoDoit
  • 2014年12月26日 12:16
  • 4625

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

具名参数 和 可选参数 是 C# framework 4.0 出来的新特性。 一. 常规方法定义及调用 public void Demo1(string x, int y) { ...
  • a57571737
  • a57571737
  • 2017年09月26日 11:10
  • 48

《Effective Java》读书笔记02-多参构造器与Builder模式

一、静态工厂方法与构造器共同的局限性 不能很好的扩展到大量的可选参数,这个很悲剧的,我一般使用java bean,不管合适不合适,没考虑线程安全哈。 二、有多个可选参数对象的实例化方法 1、重叠...
  • qbg19881206
  • qbg19881206
  • 2013年03月21日 19:24
  • 1574

c#方法重载,可选参数,命名参数。

其实这里没什么可说哦,c++的语法大同小异。先看一段代码。 class Program { public static void Test(int a) { Console...
  • tabe123
  • tabe123
  • 2015年08月21日 15:57
  • 866

C# WebAPI 传递可选参数及指定访问那个接口的方法。

在WebApiConfig.cs 文件指定访问的url及参数(专业的就是指定路由,用url比较通俗易懂点)  public static void Register(HttpConfiguratio...
  • kuyz1
  • kuyz1
  • 2017年05月02日 11:49
  • 1578

lua具名实参

具名实参: lua可以通过yiz
  • fuyuehua22
  • fuyuehua22
  • 2014年08月19日 19:53
  • 705

js 自定义方法 设置可选参数的方法

js 自定义方法 设置可选参数的方法php有个很方便的用法是在定义函数时可以直接给参数设默认值,如:function simue ($a=1,$b=2){ return $a+$b; } ech...
  • KimBing
  • KimBing
  • 2016年10月20日 20:48
  • 6275

十八JdbcTemplate具名参数的使用

在 SQL 语句中使用具名参数时, 可以在一个 Map 中提供参数值, 参数名为键也可以使用 SqlParameterSource 参数批量更新时可以提供 Map 或 SqlParameterSour...
  • yalishadaa
  • yalishadaa
  • 2017年04月18日 16:54
  • 470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#的具名参数与可选参数
举报原因:
原因补充:

(最多只允许输入30个字)