• 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);

    以上调用方式都正确;

  • 相关阅读:
    为BlueLake主题增加自定义icon图标
    Kettle自定义jar包供javascript使用
    【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中
    用心整理 | Spring AOP 干货文章,图文并茂,附带 AOP 示例 ~
    iOS开发——Web基础URLConnection请求
    iOS开篇——UI之UITableView 自定义Cell
    iOS开篇——UI之UITableView的搜索
    iOS开篇——UI之UITableView
    iOS开篇——UI之UIScrollView
    iOS开篇——UI之UIWebView
  • 原文地址:https://www.cnblogs.com/rpoplar/p/2687110.html
Copyright © 2020-2023  润新知