我正在创建一个类型的 F#,该类型继承自一个 C# 类,该类公开了一个在 C# 中返回 Task<T>
的方法。我正试图找出在 F# 中实现这个功能的最佳方法。
假设我的 C# 代码如下:
public class Foo {
public TextWriter Out { get { return Console.Out; } }
public virtual Task<SomeEnum> DoStuff() {
return Task.FromResult(SomeEnum.Foo);
}
}
public enum SomeEnum {
Foo,
Bar
}
我在F#中首次继承该类型的尝试如下:
type Bar() =
inherits Foo()
override this.DoStuff() =
this.Out.WriteLineAsync("hey from F#") |> ignore
System.Threading.Task.FromResult(SomeEnum.Bar)
但是,a) 它并不感觉像是真正的异步操作,b) 它只是感觉不像 F#。
那么我该如何继承 Foo
类并实现期望返回 Task<T>
的 DoStuff
方法呢?
Task.FromResult()
在C#和F#中都是正确的解决方案。 - svickTextWriter
以便写入输出流(控制台、网络流等),这也是我在示例中使用它的原因。 - Aaron Powell