zoukankan      html  css  js  c++  java
  • C#4.0 命名参数可选参数

      c#4.0中新特性之一就是:命名参数和可选参数。 

    命名参数:调用方法时,可以不按位置传递参数,而是指定参数的命名来传值;

    private void Func(string str,int number,bool flag){}

    对于上面的函数,使用命名参数调用时可以是 Fun(flag:true,number:10,str:“zhangsan”);

    可选参数:声明方法中的参数时,可以为其设置默认值,那么在调用该方法时,这种可选参数是可以忽略的;必须遵循以下几个原则:

         1.可选参数必须有个编译时常量作为其默认值。如果是除String之外的引用类型(包括那个特殊的dynamic类型),默认值只能是null。

          private void Func(string str,int a=10,People p=new People())这个声明是编译不过的;

         2.可选参数必须在非可选参数之后出现,可选参数右边的参数(如果有的话)必须是可选参数。

          private void Func(string str,int a=10,bool flag)这个声明也是编译不过的;

    以  private void Func(string name, int age = 10, bool sex = false) {///do something; }为例说明对命名参数和可选参数的调用方法: 

    this.Func("zhangSan");//忽略全部可选参数
    this.Func(sex: true, age: 30, name: "zhangsan");//采用命名参数,可以调换顺序;
    this.Func("zhangsan", 20);//使用依次使用前面可选参数,可以不加可选参数名称;
    this.Func("zhangsan", 30, true);//使用全部可选参数,可以不加可选参数名称;
    this.Func("zhangsan", sex: false);//使用后面的可选参数,则必须使用可选参数名称;this.Func("zhangsan",  false);是编译不了的;
    this.Func("zhangsan", age: 40);

    以上调用方式都正确;

  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/rpoplar/p/2687110.html
Copyright © 2011-2022 走看看