如何在F#中创建空类

17

我知道这是个愚蠢的问题。我可以在C#中创建一个空类,就像下面这样。

class Customer{}

但是我如何在F#中实现这个呢?这是我的尝试:

type Customer() =

   let _ = ()

什么是正确的方式?

3个回答

27

试试看

type Customer() = class end

通常情况下,您可以将classend标记留下隐式的,编译器会推断它们在类定义的开头和结尾的存在,但如果类完全为空,则需要指定它们。同样地,您可以使用struct endinterface end来生成结构体和接口。


我尝试使用以下代码:type Customer = class end,没有使用“()”,这对我有效。 - Fred Yang
2
@Fred - 是的,那也可以,但是你的类就没有在 F# 中可访问的构造函数了。 - kvb
你说的对,需要在那里加上“()”,需要查看IL以了解它的工作方式:). - Fred Yang
3
type IInterface = interface end 创建一个空接口,适用于那些需要它的人。 - ghord

11

另一种方法:

type Customer = 
  new() = {}

10

另一种编写空类(带无参构造函数)的方法,如果与@kvb的解决方案相比有所不同,我不确定生成的IL代码会是什么样子,只需简单地:

type Customer() = do ()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接