C# 命名实参,和参数默认值 重载

有了这个新特性 之后 不必再写很多 重载的方法了,一个方法搞定一切,

以前重载是用

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

 

 

 

 

转载于:https://www.cnblogs.com/chenru1988/archive/2012/12/27/2835833.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值