我不明白参数数组的用处

本文关键字:数组 参数 明白 | 更新日期: 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});