如何使用空类型签名定义F#抽象成员

Dav*_* S. 2 .net f# class unit-type

根据这个页面,一个类的所有抽象成员必须有一个type-signature.但我想定义一个具有void输入参数和void返回类型的抽象类.并且void在此上下文中不是有效的关键字.

kvb*_*kvb 5

在F#中,您通常使用在C#中unit使用void关键字的类型.所以你要找的是一个例子:

[<AbstractClass>]
type MyAbstractClass() =
    abstract MyMethod : unit -> unit

type MyDerivedClass() =
    inherit MyAbstractClass()
    override this.MyMethod() = printf "Do something here..."
Run Code Online (Sandbox Code Playgroud)

  • 值得补充的是,在大多数情况下(包括这个),F#编译器实际上将`unit`编译为`void`. (2认同)