我想在F#中为struct
实现这两个接口,但它们共享很多成员。根据我发现的文档,我将必须明确地实现这两个接口。
F#中有没有办法实现它们而不重复普通成员的实现?
答案 0 :(得分:4)
我认为在您的场景中运行良好的方法是将实际实现作为常规的非接口成员。然后,对于接口实现,只需重新暴露这些成员。类似的东西:
member this.GetEnumerator() = ... // actual logic goes here
... // other members
interface IList<T> with
member this.GetEnumerator() = this.GetEnumerator()
... // other members
interface IReadOnlyList<T> with
member this.GetEnumerator() = this.GetEnumerator()
... // other members