Ich kann dies tun:F #: Attribute zu diskriminierten Gewerkschaftsfeldern?
type AttrAttribute() =
inherit Attribute()
type MyDU =
| [<Attr>]A of bool
| [<Attr>]B of int * string
| [<Attr>]C of byte * char * int64
... aber ist es eine Möglichkeit, dies zu tun?
type MyDU =
| A of [<Attr>]bool
| B of int * [<Attr>]string
| C of [<Attr>]byte * char * [<Attr>]int64
Offenbar sind die Fallwerte nur Felder (z let v = B (13, "oops") in (Microsoft.FSharp.Reflection.FSharpValue.GetUnionFields (v, v.GetType()) |> fst).GetFields()
), so hoffe ich, dies machbar ist, irgendwie.
Ich versuchte, die DU Felder sowie Putting paretheses an wenigen Stellen zu benennen, aber das scheint nicht zu helfen. – TeaDrivenDev
Richtig, ich hatte versucht, sie auch zu benennen. "Anonyme Variablen sind in dieser Deklaration nicht erlaubt." Klingt wie ein falscher Fehler. – MiloDC
Ich habe das schon mal versucht und ich konnte auch keinen Weg finden. Dies könnte ein guter Vorschlag für https://github.com/fsharp/fslang-suggestions sein. – Tarmil