为什么这个lambda函数需要括号?
return (Func<object, Task<object>>)(async (dynamic data) => { methodCall(data.data, data.more); return null; });
从我所收集的代码正在做的事情来看,它明确地将lambda函数作为一个委托来转换,然后返回这个委托(在这种情况下,它将返回一个edgejs函数)。
当parens被删除时,从构build过程中收到8个错误。
语法错误,','预计
; 预期
预计
名称async在当前上下文中不存在
dynamic名称在当前上下文中不存在
名称数据在当前上下文中不存在
名称数据在当前上下文中不存在
名称数据在当前上下文中不存在
可能是因为async
是一个上下文关键字 ,只有在方法或lambda签名中作为修饰符出现时才具有特殊含义。 没有parens,parsing器认为async
是一个方法的名字,导致一个错误,因为编译器找不到这个名字的一个方法(并且在=>
上还有一个parsing错误,因为parsing器不再使用lambdaexpression式那点)。