2
return (Func<object, Task<object>>)(async (dynamic data) =>
{
    methodCall(data.data, data.more);
    return null;
});

根据我收集到的上述代码正在执行的操作,它明确地将 lambda 函数转换为委托,然后返回该委托(在这种情况下,它返回到一个 edgejs 函数)。

删除括号后,从构建过程中收到 8 个错误。

语法错误,“,”应为

; 预期的

} 预期的

当前上下文中不存在名称 async

当前上下文中不存在名称 dynamic

当前上下文中不存在名称数据

当前上下文中不存在名称数据

当前上下文中不存在名称数据

4

1 回答 1

2

可能是因为它async是一个上下文关键字,仅在作为修饰符出现在方法或 lambda 签名中时才具有特殊含义。如果没有括号,解析器会认为async是一个方法名称,从而导致错误,因为编译器找不到具有该名称的方法(此外,=>由于解析器此时不再使用 lambda 表达式,因此会出现解析错误) .

于 2017-02-01T17:50:52.593 回答