【发布时间】:2020-05-03 15:40:01
【问题描述】:
我的意思是我有这样的方法:
public static void CrossThreadUpdate<T1, T2, T3>(this Form form, Action<T1, T2, T3> action, object[] parms)
{
form.BeginInvoke(action, parms);
}
但我不想为<T1>, <T1, T2>, <T1, T2, T3>, <T1, T2, T3, T4>, etc. 创建相同的函数,我正在想象类似于Foo(params string[] bar) 的东西。
【问题讨论】:
-
不,你不能那样做。参数的数量必须在编译时知道。
-
这个特性被称为“variadic generics”,非常少见。我相信 TypeScript 在这方面做了一些工作,但 C# 肯定没有。
标签: c#