C – 方法的可变参数-params 050

C – 方法的可变参数-params 050示例 1 计算操作数的和因为没有说明会有多少个参数 因此需要定义多个方法重载 static int Add int a int b return a b static int Add int a int b int c

大家好,欢迎来到IT知识分享网。

示例1:计算操作数的和

因为没有说明会有多少个参数,因此需要定义多个方法重载

static int Add(int a, int b) { return a + b; } static int Add(int a, int b, int c) { return a + b + c; } static int Add(int a, int b, int c, int d) { return a + b + c + d; } static int Add(int a, int b, int c, int d, int e) { return a + b + c + d + e; } static int Add(int a, int b, int c, int d, int e, int f) { return a + b + c + d + e + f; } //.....很多重载 //调用方法 static void Main(string[] args) { int sum = Add(1, 2); Console.WriteLine(sum); sum = Add(1, 2, 3); Console.WriteLine(sum); sum = Add(1, 2, 3, 4); Console.WriteLine(sum); sum = Add(1, 2, 3, 4, 5); Console.WriteLine(sum); Console.ReadKey(); }
C - 方法的可变参数-params 050

计算操作数的和

此示例程序运行时会根据参数的个数调用相应的重载方法

示例只有5个传入相同类型参数的方法重载,如果要求提升需要6个,7个乃至更多个得需要定义多少个方法重载,再提升要求可以传入不同类型不同个数的参数….

Console.WriteLine(“”);方法,此方法不仅可以传入不同类型,还可以传入不确定的任意多个参数;可以传入不同类型是因为方法重载或数据类型,可以传入任意多个参数

通过快捷键F12查看Console.WriteLine(“”);的方法都有哪些重载

C - 方法的可变参数-params 050

Console.WriteLine(“”)的方法重载

Console.WriteLine(“”);方法最多只有4个参数的重载方法(arg0,arg1,arg2,arg3)

示例:如下代码

 static void Main(string[] args) { //第一句有相应的重载方法 Console.WriteLine("我叫 {0} 性别 {1} 今年 {2}岁了 上大学{3}年级 ", "张三", "男", 20, 1); //方法中也没见有5个/7个参数的重载方法 Console.WriteLine("我叫 {0} 性别 {1} 今年 {2}岁了 上大学{3}年级 身份证号 {4}", "张三", "男", 20, 1, "564"); Console.WriteLine("我叫 {0} 性别 {1} 今年 {2}岁了 上大学{3}年级 身份证号 {4} {5} {6}", "张三", "男", 20, 1, "564", "x", "xx"); Console.ReadKey(); }
C - 方法的可变参数-params 050

通过F12查看调用了哪个重载方法

第一句代码调用了有4个参数的重载方法的原型,第二,三句代码调用了由params修饰的object类型数组的重载方法

由此看出object类型用于接收不同类型参数,数组用于接收多个参数,params用于修饰数组,其作用就是让数字变为可变数组

方法的可变参数

params:本意参数,参数个数(是param的复数)用编程的意思解释为可变参数

这里说的可变,不是说参数的类型可变,参数类型可变将类型设置为object类型即可

参数可变:是指参数的个数可变,一般是由关键字params修饰的指定类型的数组构成

可变参数格式如下

定义了一个无返回值 有可变参数的方法 static void Test(params int[] arr) { }

方法使用params修饰参数的益处,传入参数的个数可以是0个也可以是多个,还可以是数组,因此示例1只需定义一个方法即可

static int Add(params int[] arr) { int sum = 0; //数组长度为0时即没有传入参数 //只执行了判断条件(int i = 0; i < arr.Length;) //不会执行循环体 for (int i = 0; i < arr.Length; i++) { sum += arr[i]; } return sum; } //调用方法 static void Main(string[] args) { //只为演示可变参数 //没有参数 int sum = 0; //一个参数没有,可变数组不是null //而是一个长度为0的数组 sum = Add(); Console.WriteLine("sum= {0}", sum); //3个参数 sum = Add(1, 2, 3); Console.WriteLine("sum= {0}", sum); //数组参数 int[] arr = { 1, 2, 3, 4, 5, 6 }; sum = Add(arr); Console.WriteLine("sum= {0}", sum); Console.ReadKey(); }
C - 方法的可变参数-params 050

调用可变参数方法

注意事项:当既有普通参数,又有可变参数时,可变参数必须放在所有参数的最后位置

//方法原型 static void Test(string name,bool gender,params object[] arr); //可变参数可以传入任意的C#数据类型

如果可变参数放在普通参数的中间或者前面就会报错

C - 方法的可变参数-params 050

错误的可变参数书写格式

可变参数的特点小结

1)可变参数必须放在参数中所有参数的后面

2)参数使用params修饰的数组

3)可以传入任意个参数(包括0个)或直接传入数组

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/145952.html

(0)
上一篇 2025-04-17 22:00
下一篇 2025-04-17 22:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信