Considérez ce qui suit:membres génériques avec la mise en œuvre fourni constructeur-
type Foo(bar:'a -> 'a list) =
member __.Bar = bar
-je obtenir un avertissement sur la première 'a
dans la liste des paramètres disant:
Cette construction provoque code moins générique que indiqué par les annotations de type. La variable de type 'a a été contrainte à être de type' obj '.
Pourquoi est-ce que j'obtiens cet avertissement?
Dans cet exemple spécifique, est-il possible d'avoir un membre qui convertit une valeur d'un type arbitraire en une liste de tels types et que ce membre soit fourni via le constructeur? (On pourrait par exemple imaginer Foo
instancié avec List.replicate x
pour tout entier x
que l'utilisateur choisit.)
Je ne veux pas faire lui-même Foo
générique, parce que j'ai beaucoup de ces paramètres et les membres.
(La raison pour laquelle j'essaie ce que je veux est une sorte de structure qui, entre autres, contient des fonctions génériques Overridable utilisateur.)
Merci, le lien a aidé. Je ne savais pas à ce sujet. – cmeeren