在学习了Create a method with infinite parameters之后,我想知道将参数数组存储到数组中是否合法。会不会引起任何问题,因为我没有看到很多人使用这种方法。
以下代码:
class Foo
{
private String[] Strings;
public Foo(params String[] strings)
{
Strings = strings;
}
...
}
答案 0 :(得分:4)
那很好 - 它只是一个阵列。
所有编译器都使用参数数组来转换这样的调用:
Foo("x", "y");
成:
Foo(new string[] { "x", "y" });
真的就是这一切。对于第二次调用,任何你期望适合的东西都可以使用参数数组。
传递给公共方法的数组很少适合直接存储,因为所有数组都是可变的 - 但这是你如何处理可变参数类型而不是特定于参数数组的问题。