我正在将一些遗留的 C# 类重写为 F#。其中一个类使用 this.SendAsync(identityMessage) 的单一方法实现了 IIdentityMessageService
在 C# 代码中,我看到了这个
if (transportWeb != null)
return transportWeb.DeliverAsync(message);
else
return Task.FromResult(0);
我像这样在 F# 中尝试过
if transportWeb != null then
transportWeb.DeliverAsync(message)
else
Task.FromResult(0)
我在最后一行出现错误
This expression was expected to have type
Task
but here has type
Task<'a>
我错过了什么?谢谢
最佳答案
它看起来像 DeliverAsync
返回 Task
,所以你需要两个分支都返回一个 Task
. Task.FromResult(0)
返回 Task<int>
所以你需要明确地将它上传到 Task
:
else
Task.FromResult(0) :> Task
关于f# - 使用 FSharp 中的 Task.FromResult(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26960836/