我不明白参数数组的用处?

use*_*769 6 c#

参数数组允许将可变数量的参数传递给方法:

    static void Method(params int[] array)
    {}
Run Code Online (Sandbox Code Playgroud)

但我没有看到它们的用处,因为通过指定特定数组类型的参数可以实现相同的结果:

    static void Method(int[] array)
    {}
Run Code Online (Sandbox Code Playgroud)

那么参数数组有什么好处(如果有的话)有数组类型的值参数?

谢谢

Tej*_*ejs 7

这只是一个代码可读性的东西.例如,string.Format:

string value = string.Format("SomeFormatString", param1, param2, param3, param4.... param999);
Run Code Online (Sandbox Code Playgroud)

它可以在不同的生命周期中这样写:

string value = string.Format("SomeFormatString", new string[] { param1, param2, param3 });
Run Code Online (Sandbox Code Playgroud)

最后,使代码更容易阅读和更容易理解只是语法糖.


Yur*_*ich 6

在第二个示例中,消费者无法使用它来调用它

MyType.Method(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 2

好处是编译器会自动为您创建数组:

string coor = String.Concat("x=", x, ", y=", y);
Run Code Online (Sandbox Code Playgroud)

为您生成的代码实际上是:

string coor = String.Concat(new string [] { "x=", x, ", y=", y });
Run Code Online (Sandbox Code Playgroud)

您甚至可以两全其美。如果您碰巧将数据存储在数组中,则可以将其传递给具有参数的方法params