小编Jea*_*pes的帖子

为什么此类型不是接口?

我想为默认函数实现一个相等和比较功能的接口。

如果我从成员中删除IKeyable<'A>Key成员之外的所有内容,则它是有效接口,只要不添加默认实现即可。从中删除其他接口实现IKeyable<'A>,并仅保留默认成员将以相同的结果结束。

type IKeyable<'A when 'A: equality and 'A :> IComparable> = 
    abstract member Key : 'A

    default this.Equals obj = // hidden for clarity

    default this.GetHashCode () = // hidden for clarity

    interface IEquatable<'A> with
        member this.Equals otherKey = // hidden for clarity

    interface IComparable<'A> with
        member this.CompareTo otherKey = // hidden for clarity

    interface IComparable with
        member this.CompareTo obj = // hidden for clarity

type Operation = 
    { Id: Guid }
    interface …
Run Code Online (Sandbox Code Playgroud)

f# interface default-method

1
推荐指数
1
解决办法
72
查看次数

标签 统计

default-method ×1

f# ×1

interface ×1