c# – 将数组传递给可变长度参数列表
发布时间:2020-12-16 00:12:47 所属栏目:百科 来源:网络整理
导读:如果我有一个功能 void Foo(params int[] bar){} 以下运行正常: int[] a1 = {1,2,3};int[] a2 = {4,5,6};Foo(1,3);Foo(a1); 但这些会导致编译错误: Foo(a1,1,3);Foo(1,a1);Foo(1,a1,2);Foo(a1,a2,3); 因为只允许第一个参数为int [],其余的必须是int. 最后
如果我有一个功能
void Foo(params int[] bar){} 以下运行正常: int[] a1 = {1,2,3}; int[] a2 = {4,5,6}; Foo(1,3); Foo(a1); 但这些会导致编译错误: Foo(a1,1,3); Foo(1,a1); Foo(1,a1,2); Foo(a1,a2,3); 因为只允许第一个参数为int [],其余的必须是int. 最后一个例子是我想做的,但语言不会让我没有先组合数组.我非常喜欢语法的简单性,我宁愿不再添加代码.有没有人有一个很好的方法来做到这一点? 解决方法
有点奇怪. Foo(a1,3)不应该起作用.你应该传递一个数组或一堆整数.你不能混合它们AFAIK.你有另一个超载或什么?
这样做并没有真正的语法.我能想到的最简洁的是: Foo(a1.Concat(a2).Concat(new[] {1,3}).ToArray()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |