2009-10-26 10 views
5

Soy consciente de this question, pero el autor de la pregunta parece haber sido contenido con una respuesta a otra pregunta (cómo sobrecargar el constructor)cómo invocar métodos de constructor en Fa #

tengo una clase que tipo de actúa como un memoizer avanzada en torno a una clase mutable, de modo que pueda tratarlo como inmutable desde fuera:

type Wrapper(args) = 
    let tool = new MutableTool() 
    tool.Init(args) //<--"Unexpected identifier in definition" 

    let lookupTable = //create lookup using tool here 
    member this.Lookup(s) = //callers use lookupTable here 

no puedo encontrar la manera de invocar el método Init de "herramienta". ¿Qué me estoy perdiendo?

Respuesta

8

IIRC, la palabra clave do podría funcionar aquí:

type Wrapper(args) = 
    let tool = new MutableTool() 
    do tool.Init(args) 

    let lookupTable = //create lookup using tool here 
    member this.Lookup(s) = //callers use lookupTable here 

No estoy seguro de lo que quería decir con la última línea de código, por lo que la izquierda como lo ha escrito ...

+0

¡No más garabatos rojos, gracias! – Benjol

5

Necesita "hacer":

type Foo(args) = 
    let x = new Whatever() 
    do x.Bar() 

    member .... 
Cuestiones relacionadas