打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#参数数组(params)的使用方法
参数数组,通过关键字params定义参数数组,paras类型参数主要用于在对数组长度未知(可变)的情况下进行函数声明,调用时可以传入个数不同的实参,具备很好的灵活性。
首先给出一个具体的例子介绍参数数组(params)的具体用法,首先定义一个带有参数数组的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
public class MyClass {
public static void UseParams(params int[] list) {
for (int i = 0; i < list.Length; i++) {
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
public static void UseParams2(params object[] list) {
for (int i = 0; i < list.Length; i++) {
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
static void Main() {
UseParams(1, 2, 3);
UseParams2(1, 'a', "test");
// An array of objects can also be passed, as long as
// the array type matches the method being called.
int[] myarray = new int[3] { 10, 11, 12 };
UseParams(myarray);
}
}
程序的输出结果如下:
1231atest101112下面总结一些使用参数数组的注意事项:
1. 只能在一维数组上使用params关键字。
2. 不能重载一个只基于params关键字的方法。params关键字不构成方法的签名的一部分。
如:
1
2
3
4
5
//编译时错误:重复访问
public static int Min(int [] paramList)
.............
public static int Min(params int [] paramList)
.............
3. 不允许ref或out params数组
1
2
3
4
5
//编译时错误
public static int Min(ref params int [] paramList)
.............
public static int Min(out params int [] paramList)
.............
4. params 数组必须是方法的最后一个参数(也就是只能有一个params数组参数)
1
2
public static int Min(params int [] paramList,int i)
.............
5. 编译器会检查并拒绝任何可能有歧义的重载
6. 非params方法总是优先于一个params方法。也就是说,如果愿意,仍然可以为普通情况创建一个方法的重载版本,
如:
1
2
public static int Min(int leftHandSide,int rightHandSide)
.............
优于:
1
2
public static int Min(params int [] paramList)
.............
第一个先被调用(声明不带params数组参数的方法,或许是一种有用的优化技术,可以避免编译器创建和填充太多的数组)。
1
2
3
4
5
class Black
{
public static int Hole(params object []  paramList)
.............
}
System.Object(object)是所有类的根,使用params object数组来声明一个方法,它能接受任意数量的object参数;换言之,不仅参数的数量是任意的,参数的类型也可以是任意的。所以,此方法称为Black.Hole(黑洞)
1. 可以不向它传递任何参数
2. 可以在调用它时,传递null作为参数
3. 可以向它传递一个实际的数组。也就是说,可以人工创建本由编译器来创建的数组
4. 可以向它传递不同类型的其他任何参数,这些参数将自动封装到一个object数组
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#中方法的参数
C# 参考之方法参数关键字:params、ref及out 引用 - 空白画映 - 博客园
.net程序员的盲点(一):ref,out ,params的区别
SQLite Helper for c#
8-2undefined方法的声明及调用(2)
V4.0方法的声明及调用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服