发送集合';s项作为params[]vars传递给某个方法
本文关键字:vars 方法 params 集合 | 更新日期: 2023-09-27 18:25:35
我有一个方法foo(params[] items)
我有一个集合(List、Set…)我想将其项目作为项目发送到foo
我可以使用什么语法?
如果您只将数组作为参数传递,它将作为项传递。所以只需使用Collection.ToArray
。事实上,当您使用params
时,有一些好的东西需要了解。如果您传递null并打算将其作为第一个也是唯一一个参数传递,那么它将被用作null数组。所以有了这样的代码:
SomeMethod(null);
public void SomeMethod(params object[] items)
{
...
}
项将为null,而不是长度为1的array
和作为第一个元素的null
。
该方法签名无效,因此无法编译。您仍然需要指定项目的类型,例如:
foo(params string[] items) { }
那么你可以简单地称之为:
foo("one", "two", "three");
foo(new string { "one", "two", "three"});
foo(myCollection.ToArray());
或者,
foo(myArrayOfStrings);
其中myArrayOfStrings
是字符串的数组。
您还应该确保在迭代项目之前检查一个null参数,因为
foo(null);
有效。