2012-03-29 5 views
3

Bei Verwendung eines Berechnungsausdrucks funktioniert die erste Definition, aber die zweite Definition nicht für Null.Berechnungsausdruck mit Null

Was ist der Unterschied zwischen diesen ist:

member o.Zero() = 3 

und diese:

member o.Zero = fun() -> 3 

Die ersten auswertet zu unit -> int und die zweite zu (unit -> int). Was ist der Unterschied?

Antwort

5

Wenn sie gebunden sind, gibt es keinen Unterschied. In einer Klassendefinition ist jedoch die erste o.Zero eine Methode, während die zweite o.Zero eine Eigenschaft ist.

Berechnung Ausdruck erwartet eine Methode mit dem Namen Zero; Deshalb funktionierte es nicht, wenn Sie eine Eigenschaft mit demselben Namen zur Verfügung stellten.