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

转载于:https://www.cnblogs.com/wangfuyou/p/5007424.html

C#中的 具名参数 和 可选参数相关推荐

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

    调用方法时,变量名不需要添加到调用中.比如有如下的方法用于移动矩形并在移动之后设置他的宽和高: public void MoveAndResize(int x,int y,int width,int ...

  2. C# ——具名参数和可选参数

    简介 具名参数 和 可选参数 是 C# framework 4.0 出来的特性 转载链接 用法 一.常规方法及调用 调用时,参数顺序以及类型必须和声明一致,且不可省略. 二.可选参数的声明和调用 可选 ...

  3. python中可选参数是什么意思_【IT专家】python 函数参数(必选参数、默认参数、可选参数、关键字参数)...

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 函数参数 ( 必选参数.默认参数.可选参数.关键字参数 ) 2015/09/01 30797 参考: liaoxuefeng/wik ...

  4. 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数

    [索引页] [源码下载] 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barri ...

  5. C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数...

    方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...

  6. python 函数参数 (必选参数、默认参数、可选参数、关键字参数)

    默认参数增加 (x=None), if x: 能选择是否执行对x的操作 参考文章:python 函数参数(必选参数.默认参数.可选参数.关键字参数)

  7. python 函数参数(必选参数、默认参数、可选参数、关键字参数)

    参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747384493 ...

  8. python如何定义带有可选参数的函数_python中如何正确调用带可选参数的函数

    我是python的初学者,遇到了一个需要可选参数的函数的问题. 此函数获取可变数量的文件路径作为参数,可以是2到n个参数. 之后,一定数量的可选参数可以传递给这个函数. 我试过做这样的事:def co ...

  9. java方法可选参数_Java可选参数

    java方法可选参数 在Java类中设计方法时,某些参数对于其执行而言可能是可选的. 无论是在DTO,胖模型域对象还是简单的无状态服务类中,可选方法参数都是常见的. 从本文中, 您将学习如何在Java ...

最新文章

  1. 计算机桌面放大镜,电脑桌面放大镜软件(OneLoupe)
  2. android编程中添加gif,Android应用开发之【Android】使用android-gif-drawable包加载GIF动图...
  3. 计算机换色带技巧,色带盒怎么更换 色带盒更换安装方法【图文教程】
  4. 老鼠的求爱之旅 (DP)
  5. lua os.date函数定义和示例
  6. 数据库查询前十条数据_西门子PLC1200组态王-Access数据库-⑨数据库查询
  7. 4-3利用神经网络解决分类和回归问题(1)
  8. 张朝阳直播带货首秀 带的不仅是好物而是价值平台
  9. Hadoop基础-配置历史服务器
  10. L1-051 打折 (5 分)—团体程序设计天梯赛
  11. windows 2003活动目录更名操作[图]
  12. 深圳安全研讨会圆满结束,PPT共享下载
  13. 使用DAEMON Tools Ultra制作Ubuntu启动U盘全过程(含图文)
  14. 解决egret引擎List虚拟布局不同高度Item对象重用时导致的布局异常问题
  15. 修改加入SGE集群某队列里各个执行机的cpu数(slots)
  16. Excel引用函数-实例1
  17. 不知道如何选用笔记本电脑的快来看看
  18. TCP协议与UDP协议详解
  19. bzoj 4833: [Lydsy1704月赛]最小公倍佩尔数
  20. 【转】超星转PDF最佳方法(对打印机重新审视)

热门文章

  1. Linux Server - NAT
  2. 编码实现字符串转整型的函数(实现函数atoi的功能)
  3. tensorflow 模型预训练后的参数restore finetuning
  4. Mysql创建、删除用户
  5. 线程的创建与启动——Thread 类有两个常用的构造方法:Thread()与 Thread(Runnable)||多线程运行结果是随机的
  6. Java8之lambda表达式的总结
  7. RegExp:正则表达式对象 || Global对象
  8. java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现
  9. JSplitPane
  10. 搭建JAVA可视化开发环境