2015-06-29 5 views

risposta

6

Le classi possono riferiscono a se stessi nelle loro costruttori utilizzando as:

type public ClassA() as this = 
    let b = new ClassB(this) 
    member public x.getClassB() = b 
and public ClassB (a: ClassA) = 
    member public x.getClassA() = a 
+0

In questo esempio (o uno più semplice), c'è qualche differenza tra l'utilizzo di '' x' e this'? – torbonde

+1

@torbonde 'x' definisce la proprietà 'self' per i membri, mentre' this' ha scope del costruttore. Devi sempre avere una proprietà 'self' per i membri, ma puoi omettere l'autoidentificatore per il costruttore. – mydogisbox

+0

Per maggiore chiarezza, sia l'identificatore automatico a livello di costruttore ('questo' nell'esempio sopra) sia quello a livello di membro uno ('x') può essere un'etichetta altrimenti inutilizzata. Es: tipo pubblico ClassA() come foo = let b = new ClassB (foo) membro bar.getClassB pubblico() = b e pubblico ClassB (a: ClassA) = membro pubblico bar.getClassA () = a – Kit

Problemi correlati