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的更多相关文章

  1. C#4.0新增功能02 命名实参和可选实参

    连载目录    [已更新最新开发文章,点击查看详细] C# 4 介绍命名实参和可选实参. 通过命名实参,你可以为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联.  ...

  2. 命名实参和可选实参(C# 编程指南)

    https://msdn.microsoft.com/zh-cn/library/dd264739.aspx CalculateBMI(weight: 123, height: 64); Calcul ...

  3. 命名参数和可选参数在.NET中的使用

    原文发布时间为:2011-04-25 -- 来源于本人的百度文章 [由搬家工具导入] Named and Optional Arguments class NamedExample{staticvoi ...

  4. 有关 C# 命名参数和可选参数

    有关 C# 命名参数和可选参数 #1.命名参数: 所谓“命名参数 ( Named Arguments )”,是指方法中定义了一些“有名字”的参数. 给方法参数命名之后,在调用方法时就可以直接根据参数名 ...

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

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

  6. C#新功能--命名参数与可选参数

    C#新功能--命名参数与可选参数 可能是篇幅太短了,又被打入冷宫了.先重发一篇加上可选参数.本来不想加这个呢,因为可选参数可能大家用的会多点.其实这 两个在VB中早就有了,在C#中,只有在.net4以 ...

  7. Optional arguments

    We have seen built-in functions that take a variable number of arguments. For example range can take ...

  8. 形参和实参|默认值|可选实参|tuple|*tuple|args|*args | **kwargs|args[:]|

    #!/usr/bin/python def hello(i,greet='long time to see!'): out = "hello "+i+" "+g ...

  9. jquery function Optional Arguments

    1.javascript 选项散列对象 function Test(p1,p2,p3,p4,p5){ //do something } call: 参数可选 Test({ p1:value1, p2: ...

随机推荐

  1. 1104关于优化mysql服务器几个参数和思路

    转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...

  2. angularjs实现时钟效果

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. confluence的安装、备份和恢复(wiki)

    还有一种比较不错的wiki工具MediaWiki 安装教程参考 http://pangge.blog.51cto.com/6013757/1560249 我是按照上面的教程搭建的 还有几篇不错的文章 ...

  4. NSMutableURLRequest和NSURLConnection用Post方式上传照

    需求:上传一张照片和内容,内容包括:用户编辑的内容.经纬度.地点等等,就是类似发一个说说.这就是一个很平常的功能,实现的方式想必各位能想到很多. 接下来我想用系统的NSURLConnection来实现 ...

  5. 大屏iPhone的适配 +iOS 图片尺寸要求

    摘自:http://blog.ibireme.com/2014/09/16/adapted_to_iphone6/ 苹果公司官网设计介绍到:Retina显示屏的超高像素密度已超过人眼能分辨的范围.Re ...

  6. poj1743 后缀数组求不可重叠的重复出现的子串最长长度

    Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 25348   Accepted: 8546 De ...

  7. 100735G

    很明显,我们构造出一个串后,无非就是两个结果:最长的是黑的,最长的是白的,因此选两个中小的就可以了 #include<iostream> using namespace std; int ...

  8. htm.dropdownlist

    @Html.DropDownList("status", new SelectList(new[] { "驳回", "确认", " ...

  9. 【HDU 1542】Atlantis(线段树+离散化,矩形面积并)

    求矩形面积并,离散化加线段树. 扫描线法: 用平行x轴的直线扫,每次ans+=(下一个高度-当前高度)*当前覆盖的宽度. #include<algorithm> #include<c ...

  10. target file里面的每个string字段的双引号怎么去掉

    今天在做一个extract,把数据库里面的表经过一些过程,最终输入到flat file中. 但是最终的结果中,每个target file的string字段,含有双引号如下: NAME_ID    NA ...