命名实参和可选实参 Named and Optional Arguments
1. 利用“命名实参”,您将能够为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联。
static void Main(string[] args)
{
Console.WriteLine(CalculateBMI(weight: , height: )); //实参命名
Console.WriteLine(); } static int CalculateBMI(int weight,int height)
{
return (weight * ) / (height * height);
}
有了命名实参,您将不再需要记住或查找形参在所调用方法的形参列表中的顺序。 可以按形参名称指定每个实参的形参。
下面的方法调用都可行:
CalculateBMI(height: 64, weight: 123);
命名实参可以放在位置实参后面,如此处所示。
CalculateBMI(123, height: 64);
但是,位置实参不能放在命名实参后面。 下面的语句会导致编译器错误。
//CalculateBMI(weight: 123, 64);
2. 方法、构造函数、索引器或委托的定义可以指定其形参为必需还是可选。 任何调用都必须为所有必需的形参提供实参,但可以为可选的形参省略实参。
static void Main(string[] args)
{ ExampleClass anExample = new ExampleClass(); anExample.ExampleMethod(, "One", );
anExample.ExampleMethod(, "Two");
anExample.ExampleMethod(); ExampleClass anotherExample = new ExampleClass("Provided name");
anotherExample.ExampleMethod(, "One", );
anotherExample.ExampleMethod(, "Two");
anotherExample.ExampleMethod();
anotherExample.ExampleMethod(, optionalInt: );//运用实参命名,可以跳过之前的可选实参
//anotherExample.ExampleMethod(4, 4) 这样要报错,不能中间默认跳过某几个可选实参,要依次给之前出现的可选实参赋值 } class ExampleClass { private string _name;
public ExampleClass (string name="default name") //构造函数的参数为可选实参
{
_name = name;
}
public void ExampleMethod(int reqired, string optionalstr = "default string", int optionalInt = ) //第一个为必需实参,后两个为可选实参
{
Console.WriteLine("{0}:{1},{2} and {3}", _name, reqired, optionalstr, optionalInt);
} }
命名实参和可选实参 Named and Optional Arguments的更多相关文章
- C#4.0新增功能02 命名实参和可选实参
连载目录 [已更新最新开发文章,点击查看详细] C# 4 介绍命名实参和可选实参. 通过命名实参,你可以为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联. ...
- 命名实参和可选实参(C# 编程指南)
https://msdn.microsoft.com/zh-cn/library/dd264739.aspx CalculateBMI(weight: 123, height: 64); Calcul ...
- 命名参数和可选参数在.NET中的使用
原文发布时间为:2011-04-25 -- 来源于本人的百度文章 [由搬家工具导入] Named and Optional Arguments class NamedExample{staticvoi ...
- 有关 C# 命名参数和可选参数
有关 C# 命名参数和可选参数 #1.命名参数: 所谓“命名参数 ( Named Arguments )”,是指方法中定义了一些“有名字”的参数. 给方法参数命名之后,在调用方法时就可以直接根据参数名 ...
- C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数
方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...
- C#新功能--命名参数与可选参数
C#新功能--命名参数与可选参数 可能是篇幅太短了,又被打入冷宫了.先重发一篇加上可选参数.本来不想加这个呢,因为可选参数可能大家用的会多点.其实这 两个在VB中早就有了,在C#中,只有在.net4以 ...
- Optional arguments
We have seen built-in functions that take a variable number of arguments. For example range can take ...
- 形参和实参|默认值|可选实参|tuple|*tuple|args|*args | **kwargs|args[:]|
#!/usr/bin/python def hello(i,greet='long time to see!'): out = "hello "+i+" "+g ...
- jquery function Optional Arguments
1.javascript 选项散列对象 function Test(p1,p2,p3,p4,p5){ //do something } call: 参数可选 Test({ p1:value1, p2: ...
随机推荐
- 手机信号强度单位dB、dBm和asu
dB.dBm都是功率增益的单位,不同之处如下: dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log( ...
- Windows去除快捷箭头
美化桌面 bat代码: reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shel ...
- PotPlayer为播放而生的专业播放器
韩国,比较牛逼的视频播放器.专注与本地视频播放,值得拥有.... 免费下载:http://yunpan.cn/cmZ5ELC6DTI8Y 访问密码 4bf1
- Web服务器磁盘满故障
问题: 硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小,即找不到硬盘分区是怎么被写满的.今天下午接到同事紧急求助,说生产线服务器硬盘满了.该删的日志都删掉了.可空间还是 ...
- 新的博客 bincoding.github.io
最近周围的人都在用静态博客,随主流也换了github page搭建hexo. bincoding.github.io 个人网站,用来上线乱七八糟的东西: bincoding.cn
- SVG的使用
一,svg可以在浏览器中直接打开 二,在html使用<img/>标签引用 三,直接在html中使用svg标签 四,作为css背景 SVG支持ie9+ ,chrome 33.0+,firef ...
- model 的验证
Ext.onReady(function(){ Ext.define('User', { extend: 'Ext.data.Model', fields: [ { name: 'name', typ ...
- 【CodeVS 3123】高精度练习之超大整数乘法 &【BZOJ 2197】FFT快速傅立叶
第一次写法法塔,,,感到威力无穷啊 看了一上午算导就当我看懂了?PS:要是机房里能有个清净的看书环境就好了 FFT主要是用了巧妙的复数单位根,复数单位根在复平面上的对称性使得快速傅立叶变换的时间复杂度 ...
- ArcGIS 帮助(10.2、10.2.1 和 10.2.2)收集
帮助首页 [Oracle基础] 快速浏览:Oracle 地理数据库 什么是 Oracle Spatial? 设置到 Oracle 的连接 存储在 Oracle 地理数据库中的系统表 结合企业级地理数据 ...
- SurfaceView, TextureView, SurfaceTexture等的区别
SurfaceView, GLSurfaceView, SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类.本文基于Android 5.0(L ...