何时需要使用new初始化F#类型?

Muh*_*uri 7 f# constructor class

鉴于如下课程:

type MyClass() =
    member this.Greet(x) = printfn "Hello %s" x
Run Code Online (Sandbox Code Playgroud)

是否适合使用初始化实例

let x = new MyClass()
Run Code Online (Sandbox Code Playgroud)

还是没有new

此外,何时使用new构造函数比do提供给类型定义的参数绑定更有用?

Jar*_*Par 8

我在F#中使用new的模式只在类型实现时才这样做IDisposable.这使用的编译器特殊情况如果new省略则发出警告.

所以在你的情况下,我不会使用new.但是我会这样做

type OtherClass() =
  ...
  interface System.IDisposable with 
    member this.Dispose() = ...

let x = new OtherClass()
Run Code Online (Sandbox Code Playgroud)

  • 我几乎总是说'新'.我想如果你有一个与类同名的函数,那么你需要`new`来消除歧义.我不知道这里的任何风格指南. (2认同)