具名参数 和 可选参数 是 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(); }