Given a class such as:
type MyClass() =
member this.Greet(x) = printfn "Hello %s" x
is it appropriate to initialize instances using
let x = new MyClass()
or without the new
?
Also, when is the use of a new
constructor more useful than a do
binding with parameters supplied to the type definition?
My pattern in F# for using new is to only do so when the type implements
IDisposable
. The compiler special cases this use and emits a warning ifnew
is omitted.So in your case I would not use
new
. But with the following I wouldF# spec:
F# compiler issues a warning if instance of type that implements IDisposable is created with Ty() syntax omitting new keyword. Spec says nothing about this fact, however I think it should definity should be mentioned.