2015-06-29 8 views

Odpowiedz

6

Klasy mogą odnosić się do siebie w ich konstruktorów za pomocą 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

W tym przykładzie (lub prościej jeden), jest jakaś różnica między używaniem 'x' i' this'? – torbonde

+1

@torbonde 'x' definiuje własność 'self' dla członków, podczas gdy' this' ma zasięg konstruktora. Musisz zawsze mieć własność 'self' dla członków, ale możesz pominąć identyfikator własny dla konstruktora. – mydogisbox

+0

Dla jasności zarówno identyfikator własny poziomu konstruktora ("to" w powyższym przykładzie), jak i element członkowski pierwszego poziomu ("x") może być dowolną nieużywaną etykietą. Np typu publicznego ClassA() a xxx = Niech B = nowy ClassB (bla) element publicznego bar.getClassB() = B i publiczne ClassB (a: ClassA) = element publicznego bar.getClassA () = a – Kit

Powiązane problemy