Die bisherigen Reaktionen auf eine Klasse empfehlen, Schalten, anstatt einen Datensatz zu verwenden. Wenn Sie mit Datensatz bleiben wollen (für ihre einfache Syntax und Unveränderlichkeit), können Sie diesen Ansatz:
type test =
{ a : float
b : float }
static member initialize (t: test) =
{ t with b = t.a * 2. }
Dies ist nützlich, wenn die Instanz von test
von einer anderen Bibliothek erstellt wird (wie ein Datenprovider von einem Web Dienst oder Datenbank). Bei diesem Ansatz müssen Sie daran denken, jede Instanz von test
, die Sie von dieser API erhalten, über die Initialisierungsfunktion zu übergeben, bevor Sie sie in Ihrem Code verwenden.
Es ist enttäuschend, dass die F # -Sprache nicht einmal berechnete Werte für unveränderliche Datensätze unterstützt. Ich nehme an, die Komplikation ist, wenn "a" als änderbar markiert wird. – Wally