我不明白参数数组的用处
本文关键字:数组 参数 明白 | 更新日期: 2023-09-27 17:55:48
参数数组允许将可变数量的参数传递到方法中:
static void Method(params int[] array)
{}
但是我没有看到它们的用处,因为通过指定特定数组类型的参数可以实现相同的结果:
static void Method(int[] array)
{}
那么参数数组比数组类型的值参数有什么好处(如果有的话)呢?
谢谢
这只是一个代码可读性的东西。例如,字符串。格式:
string value = string.Format("SomeFormatString", param1, param2, param3, param4.... param999);
它可以在不同的一生中这样写:
string value = string.Format("SomeFormatString", new string[] { param1, param2, param3 });
最后,它只是语法糖,使代码更易于阅读和理解。
在第二个示例中,使用者无法使用
MyType.Method(1, 2, 3)
好处是编译器会自动为您创建数组:
string coor = String.Concat("x=", x, ", y=", y);
为您生成的代码实际上是:
string coor = String.Concat(new string [] { "x=", x, ", y=", y });
您甚至可以两全其美。如果您碰巧将数据放在数组中,则可以将其传递给具有 params
参数的方法。
我更喜欢写
Method(1, 2, 3, 4, 5);
而不是
Method(new int[] { 1, 2, 3, 4, 5} );
这就是它们的称呼。
在第一个示例中,使用参数,您可以调用Method(1,2,3,4,5);
在第二个示例中,如果没有参数,您必须将其称为Method(new [] {1,2,3,4,5});