【问题标题】:How to define a F# abstract member with empty type-signature如何定义具有空类型签名的 F# 抽象成员
【发布时间】:2012-04-18 02:03:27
【问题描述】:

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

【问题讨论】:

  • 我不确定我是否理解对此的反对意见。有谁不赞成评论为什么?

标签: .net class f# unit-type


【解决方案1】:

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

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

type MyDerivedClass() =
    inherit MyAbstractClass()
    override this.MyMethod() = printf "Do something here..."

【讨论】:

  • 值得补充的是,在大多数情况下(包括这个),F# 编译器实际上会将unit 编译为void
猜你喜欢
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多