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


        }

猜你喜欢

转载自www.cnblogs.com/hubbert123/p/10640025.html