在lambda中调用Func <string,object>

Bru*_*ode 0 c#

我很困惑,为什么我不能把它称为一个函数,我如何让自己称之为函数?

Error   1   'fn' is a 'variable' but is used like a 'method'
Run Code Online (Sandbox Code Playgroud)

资源

Func<List<object>, List<object>, Func<string, object>> test;
test = (ls, fn) => fn(null);
Run Code Online (Sandbox Code Playgroud)

Eri*_*ert 11

我糊涂了.

是的.让我们不相信你.

这有什么问题?

Func<List<object>, List<object>, Func<string, object>> test;
test = (ls, fn) => fn(null);
Run Code Online (Sandbox Code Playgroud)

这说明这test是一个函数,它接受两个列表并从一个字符串返回一个函数.列表是lsfn.所以fnis 的类型,List<object>不是可以调用的东西.

也许你应该描述一下你在这里要做的事情,因为代码中一点也不清楚.

它假设收到一个List<object>,Func<string, object>并返回List<object>

我不认为这是正确的,因为你想调用该函数并获得一个List<object>返回,但是Func<string, object>返回一个object.

也许你打算写的是

Func<List<object>, Func<string, List<object>>, List<object>> test;
test = (ls, fn) => fn(null);
Run Code Online (Sandbox Code Playgroud)

现在lsis List<object>的类型和类型fnFunc<string, List<object>>.因此,当fn被调用时,它将返回a List<object>所需的test.

合理?

请记住,在Func<A, B, R>A 中,A和B是参数类型,R是返回类型.