F # macht es einfach zu definieren Typen zu tun, wieWie Argument Validierung von F # Aufzeichnungen
type coords = { X : float; Y : float }
aber wie kann ich definieren Einschränkungen/Check Argumente für den Konstruktor ohne in die ausführlichere Klassendefinition Syntax? Z.B. wenn ich möchte, dass Koordinaten von (0,0) beginnen oder eine Ausnahme auslösen.
Darüber hinaus, wenn ich meine Definition in eine Klasse ändern, muss ich Equals() usw. implementieren alle Kesselblechcode, den ich nicht will (und den ich in C# habe, dass ich versuche wegzukommen) .
mögliche Duplikate von [Ist es möglich zu erzwingen, dass ein Record einige Invarianten respektiert?] (Http://stackoverflow.com/questions/13925361/is-it-possible-to-enforce-that-a-record-repects -some-Invarianten) –
Dies ist ein Duplikat der anderen Frage. Wählen Sie, um zu schließen. –