我使用的是并发与协调运行时和我写类似的是什么码的文档中描述。以下行编译失败:

yield return new IterativeTask<string,Object,Object,long[]>("Hi",a,b,ls, itfunc);

编译器给出了这样的错误消息:

The non-generic type 'Microsoft.Ccr.Core.IterativeTask' cannot be used with type arguments

这是因为mistifying文档使用该方法与类型参数和它显然通用的。

(我要在这里发表我自己的答案,那是的鼓励我理解)

有帮助吗?

解决方案

事实证明,有以通用的参数的一个可与IterativeTask使用的数量的限制:它可以采取3个但不多

因此,此代码编译(一旦变更itfunc使用少一个的参数):

yield return new IterativeTask<string,Object,long[]>("Hi",a,ls, itfunc);

如果你真的需要在参数的所有信息,你可以创造一些类型追究他们:

struct Z {
  string msg;
  Object one;
  Object two;
  long[] ls;
}

Z z = new Z { msg="Hi", one=a, two=b, ls= longs };
yield return new IterativeTask<Z>(z, itfunc);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top