具有无限参数数组访问的C#方法

时间:2016-03-19 17:40:32

标签: c# arrays parameters

在学习了Create a method with infinite parameters之后,我想知道将参数数组存储到数组中是否合法。会不会引起任何问题,因为我没有看到很多人使用这种方法。

以下代码:

class Foo
{
    private String[] Strings;

    public Foo(params String[] strings)
    {
        Strings = strings;
    }
    ...
}

1 个答案:

答案 0 :(得分:4)

那很好 - 它只是一个阵列。

所有编译器都使用参数数组来转换这样的调用:

Foo("x", "y");

成:

Foo(new string[] { "x", "y" });

真的就是这一切。对于第二次调用,任何你期望适合的东西都可以使用参数数组。

传递给公共方法的数组很少适合直接存储,因为所有数组都是可变的 - 但这是你如何处理可变参数类型而不是特定于参数数组的问题。