2009-12-02 8 views
8

Gibt es eine Möglichkeit, ein öffentliches Literal (public const in C#) für einen Typ zu definieren? Offenbar müssen Bindungen in Typen privat sein und das Literal-Attribut kann nicht auf Mitglieder angewendet werden.F # - public literal

Antwort

9

Verwenden Sie das Attribut [< Literal>]. Das macht die Magie, die du suchst. Wenn Sie das Literalattribut auf einen Wert wie eine Zeichenfolge setzen, kann es außerdem innerhalb des Mustervergleichs verwendet werden. Zum Beispiel:

Edit: Ich sehe, dass die Frage bezieht sich darauf, wie Sie diese in benutzerdefinierten Klassen (und nicht Module) setzen. Ich weiß nicht, ob Sie ein öffentliches const/public readonly-Feld innerhalb von F # verfügbar machen können, ich werde mich darum kümmern.

+0

Danke. Ja, der Schlüssel ist "öffentlich". – Daniel

+0

Ich bin mir nicht sicher, warum diese Antwort immer wieder abgestimmt wird, weil sie die Frage nicht beantwortet (eine Tatsache, die Chris sogar anerkennt). – Daniel

+0

Meine Theorie ist, dass Leute oft abstimmen, wenn sie etwas Interessantes finden, auch wenn es die Frage nicht beantwortet. – gradbot