zoukankan      html  css  js  c++  java
  • C#中可选参数和具名参数的使用

    具名参数 和 可选参数 是 C# 4.0 提出来的新特性

    一,可选参数分为:部分可选、全部可选

    1,声明

        public class Dogs
        {
            public string Name { get; set; }
            public string Age { get; set; }
    
            //1,name为必选参数,age为可选参数,如果有必选参数,那么可选参数必须定义在必选参数后
            //可选参数之后必然为可选参数
            //如果都是可选参数,那么可以放第一位
            public void Says(string name, int age = 22)
            {
                Console.WriteLine(name + "," + age);
            }
    
            //2,name和age都为可选参数
            public void Eat(string food= "骨头", int bowls = 4)
            {
                Console.WriteLine(food + "," + bowls);
            }
        }

    2,调用

            static void Main(string[] args)
            {
                Dogs dog = new Dogs();
                dog.Says("小白");  //name传入实参,age使用默认值
                dog.Says("小白",1);  //name和age都穿入实参
    
                dog.Eat();  //不穿入实参,food和bowls都使用默认值
                dog.Eat("");//food传入实参,bowls使用默认值
                dog.Eat("",2);//food和bowls都使传入实参       
    
            //dog.Eat(2); //这样调用会报错,因为默认传入的为第一个参数,而第一个参数类型为String类型
           //想要传入第一个参数使用默认值,而第二个参数使用传入值就要使用具名参数
    
    
                //具名参数使用:food使用默认值,而bowls使用传入参数
                //使用具名参数的时候,参数的顺序可以和参数声明时候的顺序不一致
                dog.Eat(bowls: 3);  //food使用默认值,而bowls使用传入值
                dog.Eat(bowls: 2, food: "狗粮");
    
                Console.ReadLine();
    
    
            }
    越努力,越幸运!
  • 相关阅读:
    Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
    XML学习笔记(2)--dom4j操作XML
    坦克大战(版本2.5-版本2.9)
    坦克大战(版本1.7-版本2.4)
    坦克大战(版本1.0-版本1.6)
    坦克大战(版本0.1-版本0.9)
    JavaSE聊天室
    HTML+CSS+JS学习总结
    JDBC学习笔记(10)——调用函数&存储过程
    VS工程的相对路径写法
  • 原文地址:https://www.cnblogs.com/hubbert123/p/10640025.html
Copyright © 2011-2022 走看看