有了这个新特性 之后 不必再写很多 重载的方法了,一个方法搞定一切,
以前重载是用
Function(参数1,参数2);
Function(参数1,参数2,参数3)
根据自己的需求 来选择对应的方法,但是现在 新的方式 将改变这个规则
就是我们在会发生重载的方法上 给变量 设置个默认值, 切记 有默认值的参数 必须放在最后,就是说 没默认值的参数一定要放在有默认值的前面..
Function(int id=0,string name="",int age=0)
这样的话 我们就可以根据自己的需要来传参个数了 Function(id:1);这样ID为1 ,其他的参数就是默认设置的值,
还可以指定参数 必须传参,必须给它赋值, 那么就不给它设置初始值 例如:
Function(int id,string name="",int age=0)
这样的话 ID 就必须要赋值
Function(id:1,age:20);
Function(id: 1, name: "20");
Function(id: 1);
以上是正确的 只要指定了必须的ID ,其他2个有默认值的 赋值不赋值无所谓.
Function(name: "joy", age: 20);
这样是错误的,因为ID 必须要传参赋值
反正就是 参数不是必须要传参的 都可以设置个默认值,甚至 参数全部设置默认值,那样就根据需求来 选择传参了..
写法上 可以不指定 名称 比如 Function(1,"2",3);
也可以指定参数的名称 比如 Function(id:1,age:3,name="2"); 参数顺序 无所谓的 只要指定名称就行
还有一种 混合写 比如 Function(1,age:3,name="2"); 但是没指定参数名称的 参数,必须根据参数的顺序来对应上
Function(name:"2",1,age:3); 这样是错误的 因为 id 是方法的第一位
具体还有很多情况 大家可以自己测试
public class Program
{
static void Main(string[] args)
{
new P().Save(id:1,age:20);
}
}
public class P
{
public int Id { get; set; }
public int Name { get; set; }
public int Age { get; set; }
public void Save(int id=0,string name="",int age=0)
{
Console.WriteLine(id);
Console.WriteLine(name);
Console.WriteLine(age);
}
}