C#params关键字详解

params关键字

1.params是ParamArrayAttribute(参数数组属性)的缩写
2.param解决了C#中不定参数的传递的问题
3.不定参数:不确定参数的个数
4.params将不定参数编译成一个数组提供给coder使用
5.params参数必须定义在参数列表最后面。

	public void Test(int a, int b, params int[] arrays)
    {

    }

6.params在重载函数总调用时编译器会优先调用无params参数的函数

		public void Test(params int[] nums)
        {
            Console.WriteLine("是params参数的函数");
        }
        public void Test(int a,int b,int c)
        {
            Console.WriteLine("不是params参数的函数");
        }
        

main

		//会调用哪个函数了?????
		Program Program = new Program();
        Program.Test(1, 2, 3);        

输出:“不是params参数的函数”
7.别忘了params本来是数组类型也可以传递数组

        int[] arrays = { 1, 2, 3 };
        Program.Test(arrays);

8.更别忘了将数组类型定义为Object类型就能传任意对象了

 		public void Test(params Object [] objs)
        {
            Console.WriteLine("传递对象");
        }
        //主函数
       	Program Program = new Program();
        Sokect sokect = new Sokect();
        Program.Test(sokect,Program);

9.什么都不传会生成一个长度为0的数组
10.二义性

        public void Test(params int[] nums)
        {
            
        }
        public void Test(params Object [] objs)
        {
            
        }

这种重载存在二义性,在不传任何参数的时候报错。

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值