📜  F#接口

📅  最后修改于: 2021-01-01 14:36:08             🧑  作者: Mango

F#接口

F#提供接口类型。它提供了纯抽象。它是抽象方法的集合。实现接口的类必须为其所有方法提供定义。

句法:

// Interface declaration:
[ attributes ]
type interface-name =
    [ interface ]     [ inherit base-interface-name ...]
    abstract member1 : [ argument-types1 -> ] return-type1
    abstract member2 : [ argument-types2 -> ] return-type2
    ...
[ end ]

F#接口示例

在此示例中,我们创建了一个接口并将其实现为一个类。

type IEmployee =
   abstract member ShowName : unit -> unit

type Manager(id:int, name:string) =
   interface IEmployee with
      member this.ShowName() = printfn "Id = %d \nName = %s" id name

let manager = new Manager(100,"RajKumar")
//manager.ShowName()    // error: you can't directly access interface abstract method by using class object.
// so, we need to upcast class type object to interface type by using :> operator.
(manager :> IEmployee).ShowName()

输出:

Id = 100
Name = RajKumar