je tente de créer diverses méthodes d'extension pour un type générique lié aux paramètres de type générique spécifiques en F #, mais la langue ne semble pas être me permettre:Les méthodes d'extension pour les types génériques spécifiques
Ce que je veulent faire quelque chose comme ce qui suit:
type IEnumerable<int> with
member this.foo =
this.ToString()
Pourtant, il me donne l'erreur du compilateur (soulignant le mot-clé int
):
Identificateur inattendu dans le nom du type. Opérateur infixe attendu, symbole de citation ou autre jeton.
Ce qui suit ne travail, même si elle ne se lie pas spécifiquement le paramètre de type générique à int
, comme je veux:
type IEnumerable<'a> with
member this.foo =
this.ToString()
Est-il possible d'atteindre cet objectif en F # - suis-je peut-être juste en utilisant la mauvaise syntaxe? Sinon, j'apprécierais que quelqu'un propose une solution de contournement, en utilisant peut-être des contraintes de type quelque part.
Vous semblez correct. Merci quand même. – Noldorin
Cette fonctionnalité est suivie par une suggestion dans la base de données de bogues interne F # "4548: Prise en charge des méthodes d'extension pour des instanciations de type spécifiques", mais il est peu probable qu'elle soit utilisée pour la version VS2010. – Brian