2015-03-23 21 views

Odpowiedz

12

Można zrobić to w ten sposób:

type MyClass() as this = // Note as this 

    do this.SayHello() 

    member this.SayHello() = 
     do printfn "Hello from constructor!" 

Ale ogólnie nie jest to dobra praktyka

+1

Dzięki. Działa tak, jak obiecałeś, ale dlaczego nie jest to dobra praktyka? – user3685285

+8

Powiedzmy, że ta metoda używa innych pól klasy lub elementów, które nie zostały jeszcze zainicjalizowane lub zależą od jakiegoś dodatkowego zasobu (pliku, połączenia itp.), Który może nie być gotowy. W tym przypadku otrzymasz wyjątek czasu wykonywania na budowie. Jeśli weźmiesz pod uwagę dziedzictwo, sprawy mogą się jeszcze pogorszyć. – Petr

+0

Dobra uwaga. Dzięki! – user3685285

Powiązane problemy