如何在F#中创建空类

Fre*_*ang 14 f#

我知道这是一个愚蠢的问题.我可以在c#中创建一个如下所示的空类.

class Customer{}
Run Code Online (Sandbox Code Playgroud)

但是我怎么能在F#中做到这一点?这是我的尝试

type Customer() =

   let _ = ()
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

kvb*_*kvb 22

尝试

type Customer() = class end
Run Code Online (Sandbox Code Playgroud)

通常,您可以隐藏classend令牌,并且编译器会在类的定义的开头和结尾处推断它们的存在,但如果类完全为空,则需要指定它们.同样,您可以使用struct endinterface end生成结构和接口.

  • `type IInterface = interface end`为需要它的人创建一个空接口. (3认同)
  • @Fred - 是的,那也可以,但是你的类在F#中没有任何可访问的构造函数. (2认同)

Ste*_*sen 8

写一个空类的另一种方法(使用无参数构造函数),我不确定如果与@ kvb的解决方案相比,得到的IL看起来是多么简单

type Customer() = do ()
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 8

另一种方式:

type Customer = 
  new() = {}
Run Code Online (Sandbox Code Playgroud)