F # Generic Type Constraints und Duck Typing
Ich versuche, die Eingabe von Enten in F # zu implementieren, und habe festgestellt, dass Sie eine haben könnenMitgliedsbeschränkung in F # -Generika wie folgt:
type ListEntryViewModel<'T when 'T : (member Name : string)>(model:'T) =
inherit ViewModelBase()
member this.Name with get() = model.Name
Der obige Code wird jedoch nicht kompiliert, wenn ich versuche, auf die Eigenschaft zu verweisen. Ich erhalte einen Compilerfehler:
Dieser Code ist nicht allgemein genug. Die Typvariable ^ T when ^ T: (member get_Name: ^ T -> string) konnte nicht verallgemeinert werden, da sie ihren Gültigkeitsbereich verlieren würde.
Ist es möglich, Ententypisierung über eine generische Einschränkung zu implementieren?